【发布时间】:2018-10-11 12:52:33
【问题描述】:
我正在运行一个循环,输入一个公式,复制它,然后转到下一行,检查右边的 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
【问题讨论】:
-
这不会在任何地方输入公式。你的意思是输入值TRUE?
-
无论在哪里看到select,基本上都可以删掉那个部分,然后把句号之前的部分放到下一行,合并成一行。
RANGE("B10").Value = "True"是更好的方法 -
删除行
RANGE("B11").select你选择它,然后不做任何事情。当我删除那行时,我可以毫无错误地单步执行。 -
urdearboy,是的,我用“true”这个词代替了这个例子的实际公式,因为它太长太复杂,根本没有添加到例子中。
-
转发 Ed,谢谢!我以为有更短的方法或写它!只是不知道怎么做!知道为什么它不循环吗?