我正在将代码应用于多个工作表。但是,问题是我正在调用一个包含代码的sub in循环(Call sort),最后调用其他sub等等。我希望为一张纸调用所有子,然后转到下一张并执行相同的任务。我有三张名为“5”,“6”和“7”的纸张(也可以更多)。这是我正在申请的代码:
Sub code()
Dim wsarray As Sheets
Set wsarray = ActiveWorkbook.Sheets(Array("5", "6", "7"))
For Each sheetobject In wsarray
sheetobject.Select
Call Sort
Next
End Sub
此代码仅为7提供正确的输出。我不知道如何解决这个问题。请帮忙。
答案 0 :(得分:0)
我不确定使用带有工作表名称的数组,但另一种方法是循环遍历所有工作表,如果它是5,6或7,则运行代码:
dim wsht as Worksheet
for each wsht in Activeworkbook
If wsht.name = "5" or wsht.name = "6" or wsht.name = "7" Then
With worksheets(wsht.name)
Call Sort
end with
End if
next wsht
编辑:或者,这可能适用于数组 - 我会声明你自己的数组先存储它们,然后调用那个数组: (改编自here
Sub Test()
Dim myArray(1 To 3) As String, x
myArray(1) = "5"
myArray(2) = "6"
myArray(3) = "7"
For Each x In myArray
Sheets(x).Select
Call Sort
Next x
End Sub
答案 1 :(得分:0)
如果每个工作表中都有相同的子名称,请执行以下操作:
public sub subname()
dim wsht as Worksheet
for each wsht in Worksheets
Activeworkbook.sheets(wsht.name).sort
next wsht
end sub