我的新手问题:如何将变量赋值给循环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