2011-11-18 65 views
0

我有这段代码。在多张纸上运行代码

Const pw As String = "password" '<-change password here 
ActiveSheet.Unprotect pw 
Range("B7").QueryTable.Refresh BackgroundQuery:=False 
ActiveSheet.Protect pw 

它解除保护,刷新数据和重新保护。目前它从活动工作表上的按钮运行。我希望按钮为两张不同的纸张做同样的事情。

回答

0

您正在寻找ActiveWorkbook.Sheets(someName)

+0

如果我想要两张可以给我一个例子吗? – digitalgavakie

1

下面是一个示例,说明如何设置工作表数组并通过With语句获得更简洁的代码。如果您想为所有工作表执行此操作,则可以简单地说“对于工作表中的每个工作表”,而无需声明工作表数组。 :)

Sub Test() 

Dim pw As String 
pw = "password" 
Dim sheet As Variant 
Dim refreshSheets(1 To 2) As Worksheet 

Set refreshSheets(1) = sheets(1) 
Set refreshSheets(2) = sheets(2) 

For Each sheet In refreshSheets 
    With sheet 
     .Unprotect pw 
     .Range("B7").QueryTables.Refresh BackgroundQuery:=False 
     .Protect pw 
    End With 
Next 

End Sub 
相关问题