Bez*_*Bez 7 excel vba excel-vba
任何人都可以告诉我为什么我会在以下代码中收到1004错误?
如果不清楚,我正在尝试循环所有不是我命名工作表的工作表并尝试选择特定范围并将其复制并粘贴到已编译的"Quant Sheet"中
Dim ws As Worksheet
Dim x As Integer
Dim y As Integer
Dim a As Integer
Dim b As Integer
Set ws = Worksheets("Quant Sheet")
x = 1
y = 3
a = 3
b = 2
Worksheets("Quant Sheet").Activate
For Each ws In ActiveWorkbook.Worksheets
If (ws.Name <> "Quant Sheet") Then
ws.Range("A3").Select
Selection.Copy
Sheets("Quant Sheet").Select
Cells(y, 1).Select
ActiveSheet.Paste
y = y + 1
End If
Next ws
Run Code Online (Sandbox Code Playgroud)
您设置WS为,Worksheets("Quant Sheet")但然后使用相同的变量ws在循环中使用.这可能导致了这个问题.
试试这个:
Dim ws As Worksheet, mainWS As Worksheet
Dim x As Integer, y As Integer, a As Integer, b As Integer
Set mainWS = Worksheets("Quant Sheet")
x = 1
y = 3
a = 3
b = 2
For Each ws In ActiveWorkbook.Worksheets
If (ws.Name <> "Quant Sheet") Then
ws.Range("A3").Copy Destination:=mainWS.Cells(y, 1)
y = y + 1
End If
Next ws
Run Code Online (Sandbox Code Playgroud)
主要是,您希望避免使用.Select/.Activate确保您更直接地使用数据.
编辑:仅供参考,您可以通过不使用类似的东西来进一步使其更具动态性y=y+1,而是使用偏移量或lastRow变量,但这是个人偏好,因为它将完成同样的事情.(我也假设了x,a和b变量在宏别处使用...
| 归档时间: |
|
| 查看次数: |
1089 次 |
| 最近记录: |