2015-07-10 72 views
1

我正在運行基於單元格更改的背景宏。當我創建一個新文件時,我想創建一個宏,該宏使用我的後臺宏導入.csl文件,以替換「Microsoft Excel對象」中的「Sheet1」。我搜索了網頁,但我似乎無法找到適合我的問題的解決方案。現在,我只是將代碼複製並每個我打開一個新的文件時,粘貼到Sheet1中,但是這是一種惱人的..創建新的Excel文件時,將.cls宏導入Sheet1

,我想移動的代碼如下:

Private Sub Worksheet_Change(ByVal Target As Range) 

    If Target.Column > 1 Then 

     If InStr(1, Range(Cells(Target.Row, Target.Column - 1), Cells(Target.Row, Target.Column - 1)).Value, "pos from Rapid") Then 

      If Not IsEmpty(Target.Value) Then 

       Application.DisplayAlerts = False 
       Range(Target.Address).Select 
       Selection.TextToColumns Destination:=ActiveCell.Offset(0, 3).Range("A1"), _ 
       DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=False _ 
       , Tab:=False, Semicolon:=False, Comma:=True, Space:=False, Other:= _ 
       False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), DecimalSeparator _ 
       :=".", TrailingMinusNumbers:=True 
       Application.DisplayAlerts = True 

      Else 

       Range(Cells(Target.Row, Target.Column + 3), Cells(Target.Row, Target.Column + 5)).Value = "" 

      End If 
     End If 
    End If 
End Sub 
+0

請勿對MS Office使用[**宏標籤](http://stackoverflow.com/tags/macros/info)/VBA。 –

回答

0

但是,爲了簡單起見,我確信你想要做什麼,我建議從一個新的空Excel工作簿開始,導入.cls文件,然後File | Save As,其名稱如My Classy Workbook,並將Save As Type設置爲Excel Macro-Enabled Template (*.xltm)注意:在保存文件時請注意,因爲Excel想要將所有模板放在默認模板目錄中 - 如果您想將其放在其他位置,則必須覆蓋目錄位置。然後,當你需要一個帶有類的新工作簿時,只需打開你的模板,Class模塊就已經在那裏了。這有額外的好處,即打開模板的副本(默認情況下命名爲我的優等工作簿 .xlsm),因此您在新文件中執行的任何其他工作都不會覆蓋原始模板。

打開模板(使用類預加載)將直接從Windows資源管理器或從VBA代碼中工作。

如果您需要編輯模板本身(例如修復或更新類文件),您可以在Windows資源管理器中選擇right-click文件,然後選擇Open。否則,您只需獲取模板的副本即可工作。