Sub MacroFillAreas()
For Each area In Columns("B:C").SpecialCells(xlCellTypeBlanks)
If area.Cells.Row <= ActiveSheet.UsedRange.Rows.Count Then
area.Cells = Range(area.Address).Offset(-1, 0).Value
End If
Next area
End Sub
这是我在工作簿中填充空白单元格的宏。我在area.Cells = Range(area.Address).Offset(-1, 0).Value
任何人都能解释为什么会这样吗?以下是数据的快速示例以及我正在尝试使用它的内容。
A 1 12
A 1 12
A
A
A 2 14
A
A 3 14
A
A
必须复制上面的单元格:
A 1 12
A 1 12
A 1 12
A 1 12
A 2 14
A 2 14
A 3 14
A 3 14
A 3 14
答案 0 :(得分:1)
BruceWayneis,当B1:C1为空时,你会得到错误。
Range(area.Address).Offset(-1, 0).Value
使用区域不需要的范围.Offset(-1,0).Value而不是Sub MacroFillAreas() Dim cell As Range, SearchRange As Range On Error Resume Next Set SearchRange = Columns("B:C").SpecialCells(xlCellTypeBlanks) On Error GoTo 0 If Not SearchRange Is Nothing Then For Each cell In SearchRange If cell.Row > 1 Then cell = cell.Offset(-1, 0).Value Next cell End If End Sub