0

次の完全なセルまでデータを次の空白セルにコピーし、そのセルのデータを取得して最初からやり直すのはなぜですか?

Option Explicit

Sub CopyDown()

    Dim wsPOD As Worksheet
    Dim lastrow

    Set wsPOD = Sheets("PO Data")

With wsPOD
    lastrow = wsPOD.Range("F" & Rows.Count).End(xlUp).Row
            wsPOD.Range("A2:D" & lastrow).Select
            Selection.SpecialCells(xlCellTypeBlanks).Select
            Selection.FormulaR1C1 = "=R[-1]C"
    End With
End Sub

スクリプトの大部分は理解できますが、次の部分は理解できません。

        Selection.SpecialCells(xlCellTypeBlanks).Select
        Selection.FormulaR1C1 = "=R[-1]C"

最後の部分は特に私にとって意味不明なことを意味します。誰かがこれを理解するのを手伝ってくれませんか?

4

1 に答える 1

2

私のコメントに基づいて、次を使用してコードを整理できます

オプション明示

Sub CopyDown()

    Dim wsPOD As Worksheet
    Dim lastrow as long
    Dim EmptyCells as range

    Set wsPOD = Sheets("PO Data")

With wsPOD
    lastrow = .Range("F" & .Rows.Count).End(xlUp).Row
            set EmptyCells = .Range("A2:D" & lastrow).SpecialCells(xlCellTypeBlanks)
            EmptyCells.FormulaR1C1 = "=R[-1]C"
    End With
End Sub
于 2012-09-20T17:59:22.017 に答える