我对VBA很陌生,考虑到我花了多少时间来解决以下问题,我当然会感激一些帮助。
这是我想要做的简化示例。简而言之,我需要使用一个静态值“*”或从另一列提取的多行填充Column AA。我一直收到运行时1004错误。
Sub test()
TotalBG = 2
SelBG = 1
If TotalBG = SelBG Then
Column1RowCount = 2
Column1Value = "*"
Else
Column1RowCount = Worksheets("Sheet3").Range("Q25000").End(xlUp).Row
Column1Value = Worksheets("Sheet3").Cells(Column1Loop, "Q").Value
End If
k = 2
For Column1Loop = 2 To Column1RowCount
Worksheets("Sheet3").Cells(k, "AA").Value = Column1Value
k = k + 1
Next Column1Loop
End Sub
给出错误的行是:
Column1Value = Worksheets("Sheet3").Cells(Column1Loop, "Q").Value
我认为原因是我引用了一个尚未定义的变量名(Column1Loop)。看起来像一个Catch 22(对我来说,就是这样) - 有人请求帮助!
干杯, 彼得
答案 0 :(得分:0)
您的代码段确实包含错误,并且无法正常执行,因为Column1Loop
与该特定语句无关(请参阅代码段中的以下行):
Column1Value = Worksheets("Sheet3").Cells(Column1Loop, "Q").Value
您可以修改代码以解决此问题,如下所示:
Column1Value = Worksheets("Sheet3").Cells(Column1RowCount, "Q").Value
其中Column1RowCount
是执行Column1Loop
循环时For-Next
var的值。
希望这可能会有所帮助。