如果单元格是空的复制单元格上面
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
这是我的工作簿中填充空白单元格的macros。 我在区域上抛出一个对象错误area.Cells = Range(area.Address).Offset(-1, 0).Value
谁能解释为什么会发生这种情况 这里是数据的一个简单的例子,以及我正在试图用它来做什么。
A 1 12 A 1 12 AAA 2 14 AA 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
BruceWayneis,当B1:C1是空白时,你会得到错误。
- 非连续单元格的范围对象有多个区域。 出于这个原因,你应该重新命名区域到单元来澄清。
- 区域。误导区域只是1个小区的使用区域
- 区域是一个范围,不需要这个
Range(area.Address).Offset(-1, 0).Value
使用`area.Offset(-1,0).Value改为 - 如果没有find单元格,SpecialCells会抛出一个错误。 你需要捕捉这个错误。
Sub MacroFillAreas() Dim cell As Range,SearchRange As Range 在错误恢复下一步 Set SearchRange = Columns(“B:C”)。SpecialCells(xlCellTypeBlanks) 在错误转到0 如果不是SearchRange是没有的话 对于每个单元格在SearchRange中 如果cell.Row> 1那么cell = cell.Offset(-1,0).Value 下一个单元格 万一 结束小组