在创建新的Excel文件时将.cls宏导入Sheet1

时间:2015-07-10 13:51:19

标签: excel vba excel-vba

我正在运行一个基于单元格更改的背景宏。当我创建一个新文件时,我想创建一个宏,用我的后台宏导入.csl文件,以替换“Microsoft Excel Objects”中的“Sheet1”。我在网上搜索过,但我似乎无法找到适合我的问题的解决方案。现在我只是在每次打开一个新文件时将代码复制并粘贴到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

1 个答案:

答案 0 :(得分:0)

我确定你想要做的事情是可能的,但是,为了简单起见,我建议从新的空Excel工作簿开始,导入.cls文件,然后File | Save As使用类似My Classy Workbook的名称并将Save As Type设置为Excel Macro-Enabled Template (*.xltm)注意:请注意,当您保存文件时,因为Excel希望将所有模板放在默认模板目录中 - 如果您需要覆盖目录位置,则必须覆盖目录位置。我想把它放在其他地方。

然后,当您需要一个包含该类的新工作簿时,只需打开您的模板,Class模块就已存在。这还有打开模板的副本的附加好处(默认情况下命名为我的优雅工作簿 1 .xlsm ),所以任何额外的工作你在新文件中执行不会覆盖原始模板。

打开模板(预装了Class)可直接从Windows资源管理器或VBA代码中运行。

如果您需要编辑模板本身(例如修复或更新类文件),您可以在Windows资源管理器中right-click该文件,然后选择Open。否则,您只需获取模板的副本即可使用。