我坚持如何完成一个具有特定结果的循环。
我附上了我基本上想要发生的事情的屏幕截图。
VBA将从B1开始我希望VBA向右循环空列,直到它到达任何字符/字符串(结果可以出现在B1右边的任何单元格中,并且是一个可变字。 )一旦找到包含任何字符的单元格,我想复制它并将其移动到B5。我有以下代码,它几乎做了我想要的除了它只是保持循环的事实。
代码:
Sub looptillnotempty()
Dim notempty As Boolean
notempty = False
Do Until notempty
If IsEmpty(ActiveCell) = True Then
ActiveCell.Offset(0, 1).Select
Else
ActiveCell.Copy
Range("C5").PasteSpecial Paste:=xlPasteFormulas
End If
Loop
Range("C8").Select
End Sub
我想要完成的任务::
答案 0 :(得分:2)
您可以使用Exit Do退出循环,如下所示:
Sub looptillnotempty()
Dim notempty As Boolean
notempty = False
Do Until notempty
If IsEmpty(ActiveCell) = True Then
ActiveCell.Offset(0, 1).Select
Else
ActiveCell.Copy
Range("B5").PasteSpecial Paste:=xlPasteFormulas
Exit Do
End If
Loop
Range("C8").Select
End Sub
答案 1 :(得分:2)
你可以像下面那样
Sub looptillnotempty()
With ActiveSheet.Range("B1").End(xlToRight)
If .Value <> "" Then ActiveSheet.Range("B5").Formula = .Formula
End With
Range("C8").Select
End Sub
只需选择将要找到的单元格公式复制到哪个单元格中,因为在您的问题文本中您编写了“B5”,在您的代码示例中您编写了“C5”并且在屏幕截图中它似乎是“A5”...