2016-03-06 55 views
0

我对VBA很新颖,并且考虑了多少时间来尝试解决以下问题,我当然会感谢一些帮助。Excel VBA:定义变量,其中包含对其他动态变量的引用

这是我试图做的一个简单的例子。简而言之,我需要使用“*”的一个静态值或从另一列中提取多行来填充列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

你的代码片段确实包含错误并且由于Column1Loop是空的有关该特定语句不会正确执行(见从您的代码段下面一行):

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

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

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

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

希望这可能有所帮助。

相关问题