4

Excelでマクロレコーダーを使用してセルの列を埋めるマクロを記録しようとしていますが、毎回塗りつぶすのはセルの数が異なるため、塗りつぶすセルの数が短いか長すぎるためです。マクロは、セル範囲とその固定を識別します。

とにかく、最後に入力された隣接セルまで埋めることができますか。たとえば、列 D の最後の入力された行に到達するまで、列 E をオートフィルします。ここでいくつかの例を見てきましたが、コードはすべて非常に異なっているように見えるので、マクロレコーダーで実行できるかどうか、または誰かに書いてもらう必要があるかどうかはわかりませんいくつかのコードですか、それとも手動で行う必要があるものですか?

これは私がマクロに持っているコードです。

ActiveCell.FormulaR1C1 = _
        "=IF(MONTH(RC[-1])>3,"" ""&YEAR(RC[-1])&""-""&RIGHT(YEAR(RC[-1])+1,2),"" ""&YEAR(RC[-1])-1&""-""&RIGHT(YEAR(RC[-1]),2))"
    Selection.AutoFill Destination:=Range("E2:E1344")
    'Selection.AutoFill Destination:=Range("E2:E1344")
    Range("E2:E1344").Select

誰かが助けることができれば、私は非常に感謝しています

4

3 に答える 3

9

テストされていません....しかし、動作するはずです。

Dim lastrow as long

lastrow = range("D65000").end(xlup).Row

ActiveCell.FormulaR1C1 = _
        "=IF(MONTH(RC[-1])>3,"" ""&YEAR(RC[-1])&""-""&RIGHT(YEAR(RC[-1])+1,2),"" ""&YEAR(RC[-1])-1&""-""&RIGHT(YEAR(RC[-1]),2))"
    Selection.AutoFill Destination:=Range("E2:E" & lastrow)
    'Selection.AutoFill Destination:=Range("E2:E"& lastrow)
    Range("E2:E1344").Select

唯一の例外は、Autofill コードが完璧であると確信している場合です...

于 2013-08-28T12:46:03.210 に答える
3

この例では、列 A のデータ量に基づいて列 B に入力する方法を示します。必要に応じて「A1」を調整します。B1の式に基づいて列Bに入力します。

Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
于 2013-08-28T12:49:17.973 に答える
2
ActiveCell.Offset(0, -1).Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
于 2014-08-13T16:17:05.680 に答える