所以我创建了一个简单的宏:
我有这个宏工作,但只有在我将宏代码嵌入工作表时才能使它工作。
这是代码;
Sub UpdateChartParams()
Dim Chart_Parameters As Worksheet
Sheets("Chart_Parameters").Visible = True
Sheets("Chart_Parameters").Select
Cells.Replace What:="testtext", Replacement:="newtext", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Sheets("Chart_Parameters").Visible = False
End Sub
我需要做的是尽可能针对任何打开的工作簿运行此文件。
答案 0 :(得分:2)
这将使用匹配的工作表更新任何打开的工作簿。 无需取消隐藏以进行替换。
Sub UpdateChartParams()
Dim Chart_Parameters As Worksheet
Dim wb As Excel.Workbook
For Each wb In Application.Workbooks
If wb.Name <> ThisWorkbook.Name Then
Set Chart_Parameters = Nothing
On Error Resume Next 'ignore error if no such sheet...
Set Chart_Parameters = wb.Worksheets("Chart_Parameters")
On Error GoTo 0
If Not Chart_Parameters Is Nothing Then
Chart_Parameters.Cells.Replace What:="testtext", _
Replacement:="newtext", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
End If
End If
Next wb
End Sub
答案 1 :(得分:0)
德里克,
执行此操作的一种方法是将宏添加到文件PERSONAL.XLSB中。每次启动Excel时,此文件都将在后台加载。最初PERSONAL.XLSB文件不存在。
要自动创建此文件,只需开始录制“虚拟”宏(使用电子表格左下方的录制按钮)并选择“个人宏工作簿”将其存储。录制宏后,您可以使用[Alt] + [F11]打开VBA编辑器,您将看到带有“虚拟”宏的PERSONAL.XLSB文件。
我使用此文件存储一直可用的常规宏的负载。我已将这些宏添加到我自己的菜单功能区中。
这个常见宏文件的一个缺点是,如果启动多个Excel实例,您将收到一条错误消息,表明PERSONAL.XLSB文件已被Excel实例Nr使用。 1.只要你现在不添加新的宏,这就不成问题了。