VBA循环通过空列

我被困在如何完成一个循环与一定的结果。

我附上了我基本上想要发生的一个屏幕截图。

VBA会从B1开始,我希望VBA能够通过空列向右循环,直到它到达任何字符/string(结果可以出现在B1右侧的任何单元格中,并且是一个可变字)。find任何字符的单元格,我想复制它并将其移动到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 

我正在努力完成的是

在这里输入图像说明

您可以使用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 

你可以像下面这样去

 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”…