为什么这个Excel VBA脚本向下复制并重复,直到最后选中的单元格?

为什么这会将数据复制到下一个空白单元格直到下一个完整单元格,然后取出该单元格的数据并重新开始?

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" 

最后一部分对我来说尤其意味着胡言乱语,有人能帮我理解这个吗?

根据我的评论,你可以使用清理代码

选项显式

 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