【发布时间】:2023-04-05 06:54:01
【问题描述】:
我的新手问题:
我需要从循环收集的值中定义变量。 我有一列数据,我需要过滤这些数据并复制到另一个以变量命名的新工作表。
问题是,我无法从循环中获取变量。 可能吗? 示例:变量为“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
谢谢!
【问题讨论】:
-
您到底在哪里遇到错误?
-
我是否正确理解您的问题是您需要变量 hu 的多个值,但您只得到一个(最后一个)?这就是事情的工作方式——“正常”变量只能存储一个值。您需要 1) 扩展 LOOP 以便它为所有代码运行;或者 2) hu 需要是一个 ARRAY 以便它可以存储多个值。
-
我收到此错误:“编译错误:预期函数或变量”我无法继续开发宏,因为我收到此错误