运行macros的任何活动或打开工作簿?

所以我创build了一个简单的macros来:

  • 取消隐藏工作表。
  • find并replace文字。
  • 重新隐藏工作表。

我有这个macros的工作,但只能让它工作,当我将macros代码embedded到工作表中。

这是代码;

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 

我需要做的是运行这个文件,如果可能的话打开任何打开的工作簿。

这将更新任何打开的工作簿(S)与匹配的工作表。 无需取消隐藏来运行replace。

 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 

德里克,

一种方法是将您的macros添加到文件PERSONAL.XLSB。 每次启动Excel时,都会在后台加载该文件。 最初PERSONAL.XLSB文件不会在那里。

要自动创build此文件,只需开始录制“虚拟”macros(使用电子表格左下angular的录制button),然后select“个人macros工作簿”将其存储。录制macros后,可以打开VBA使用[Alt] + [F11]编辑器,您将看到带有“dummy”macros的PERSONAL.XLSB文件。

我使用这个文件来存储总是可用的一般macros的负载。 我已经将这些macros添加到我自己的菜单function区中。

这个常见的macros文件的一个缺点是,如果启动多个Excel实例,则会收到一条错误消息,指出PERSONAL.XLSB文件已被Excel实例Nr使用。 1.这个没有问题,只要你现在不添加新的macros。