我希望您能协助我创建VBA宏。我有一个电子表格,其中包含一些正在尝试修复的格式错误。我想查找一个空范围的单元格(在提供的示例中,E6:H6)。如果范围为空,我想从其正下方的行中剪切部分数据(B7:E7),并将其粘贴到E6中。
电子表格示例
我有执行此操作的代码,但是我不知道如何循环执行宏以继续查找其他实例。这是我到目前为止的VBA。
Sub Range_Cut()
Range("B7:E7").Cut Range("E6:H6")
End Sub
任何帮助将不胜感激!
答案 0 :(得分:1)
这是特定于您的用例的,但是应该可以使用。可以付出更多的努力来使范围完全合格和动态。
Sub testLoop()
Dim rng As Range
Dim c As Range
Set rng = Intersect(ActiveSheet.UsedRange, Range("E:E"))
For Each c In rng
If c.Value = "" And c.Offset(0, -1) <> "" Then
c.Offset(1, -3).Resize(1, 4).Cut c
End If
Next c
rng.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
它穿过E列以查找D中有值的空白单元格。找到一个空白单元格时,它将从下一行切下偏移范围并将其粘贴到E中。最后,它删除空行。
答案 1 :(得分:0)
未经测试:
Dim C As Range
For each c in activesheet.range("a2:a17").cells
if len(c.value) = 0 then c.offset(0, 1).resize(1, 4).cut _
c.offset(-1, 4)
next c