首页 > 解决方案 > 如何向下循环运行直到右侧的单元格为空 - VBA excel

问题描述

我正在运行一个循环,输入公式,复制它,然后转到下一行,检查右侧的 2 个单元格是否为空,如果是,则什么也不做。如果它们完全包含任何内容,则粘贴 B10 中的公式(以下示例中的单词“true”)。

但是它会粘贴公式,然后停止。它不会一直循环下去,直到右边的单元格为空?

任何有关如何解决此问题的想法将不胜感激!

Sub Macro1()

Range("B10").Select
ActiveCell.Value = "TRUE"
Range("B10").Select
Selection.Copy

Range("B11").Select

Dim cell As Range
For Each cell In ActiveSheet.Range("B11:B150")

If IsEmpty(cell.Offset(0, 3).Value) = True Then
cell.Value = ""

Else: ActiveSheet.Paste

End If

Next cell

End Sub

标签: excelvbafor-loop

解决方案


这应该做......注意你不需要.Select


Sub Test()

Dim ws as Worksheet: Set ws = ThisworkBook.Sheets("Sheet1")

Dim myCell as Range

For Each myCell in ws.Range("B10:B150")
    If myCell.Offset(,1) <> "" and myCell.offset(,2) <> "" Then
        myCell = "TRUE"
    End If
Next myCell

End Sub

推荐阅读