我的新手問題:如何將變量賦值給循環VBA中的值
我需要從循環中收集的值定義變量。 我有一列數據,我需要過濾這些數據並複製到另一個名爲變量的新工作表。
問題是,我無法從循環中獲取變量。 這可能嗎? 例如:變量是「hu」
i = 2
Do Until IsEmpty(Cells(i, 9))
**hu** = Cells(i, 9).Value
i = i + 1
Loop
ActiveWorkbook.Worksheets.Add
ActiveSheet.Name = **hu**
Worksheets("Sheet1").Range("A1:I1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$I$1").AutoFilter Field:=9, Criteria1:=**hu**
With ActiveSheet.AutoFilter.Range
On Error Resume Next
Set rng2 = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _
.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
End With
If rng2 Is Nothing Then
MsgBox "No data to copy"
Else
Set rng = ActiveSheet.AutoFilter.Range
rng.Offset(1, 0).Resize(rng.Rows.Count - 1).Copy _
Destination:=Worksheets("Comparison2").Range("A2")
End If
ActiveSheet.ShowAllData
謝謝!
確切在哪裏你是否得到一個錯誤? – TheEngineer
我是否正確理解你的問題是你需要變量** hu **的多個值,但你只能得到一個(最後一個)?這是事情的方式 - 一個「normal」變量只能存儲一個值,您需要1)擴展LOOP,使其運行所有代碼;或者2)* hu *需要是ARRAY,以便可以存儲多個值 –
我收到此錯誤:「編譯錯誤:預期的功能或變量「我不能前進與宏的發展,因爲我收到此錯誤 – bennes