2012-03-23 25 views
1

所以我創建了一個簡單的宏:爲任何Active或Open Workbook運行宏?

  • 取消隱藏工作表。
  • 查找並替換文本。
  • 重新隱藏工作表。

我有這個宏工作,但只有當我將宏代碼嵌入到工作表中時才能使其工作。

這是代碼;

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 

我需要做的就是在可能的情況下針對任何打開的工作簿運行此文件。

回答

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 
0

德里克,

的一種方式做,這是你的宏的添加到文件PERSONAL.XLSB。每次啓動Excel時,都會在後臺加載該文件。最初PERSONAL.XLSB文件不會在那裏。

要自動創建此文件,只需開始錄製「虛擬」宏(使用電子表格左下角的錄製按鈕)並選擇「個人宏工作簿」將其存儲。錄製完宏後,您可以用[Alt] + [F11]打開VBA編輯器,您將看到帶有「虛擬」宏的PERSONAL.XLSB文件。

我用這個文件來存儲總是可用的一般宏的加載。我已將這些宏添加到我自己的菜單功能區中。

此常見宏文件的一個缺點是,如果啓動多個Excel實例,將會收到一條錯誤消息,指出PERSONAL.XLSB文件已被Excel實例Nr使用。 1.只要你現在不添加新的宏,這是沒有問題的。