Excel VBA:定义包含对其他动态变量的引用的变量

时间:2016-03-06 18:49:33

标签: excel excel-vba vba

我对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(对我来说,就是这样) - 有人请求帮助!

干杯, 彼得

1 个答案:

答案 0 :(得分:0)

您的代码段确实包含错误,并且无法正常执行,因为Column1Loop与该特定语句无关(请参阅代码段中的以下行):

Column1Value = Worksheets("Sheet3").Cells(Column1Loop, "Q").Value

您可以修改代码以解决此问题,如下所示:

 Column1Value = Worksheets("Sheet3").Cells(Column1RowCount, "Q").Value

其中Column1RowCount是执行Column1Loop循环时For-Next var的值。

希望这可能会有所帮助。