生成新工作表时是否可以自动输入VBA代码?

时间:2013-12-08 06:04:28

标签: excel excel-vba vba

是否可以创建新的Excel工作表,然后自动将VB代码放入该工作表中?

这是我到目前为止所做的。名为Template的工作表包含用户需要输入的所有信息的输入。我有各种检查,以确保所有字段都填写完毕,并在执行任何其他操作之前正确填写。当他们点击某个单元格来执行该脚本时,它将打开一个Word文档并导入其中的所有必需信息。然后在Excel中创建一个新工作表。根据模板表中ComboBox(cboSites)中选择的内容,为新工作表指定名称。我也有一个检查,以确保已经没有一个同名的工作表。我所有这些都没有任何问题。

从这里开始,我想做什么,想不出怎么做,就是在创建新工作表时,我希望VBA代码自动转储到这个新工作表中。我知道我想要使用的代码,但我根本不知道如何获取它所以它会自动将该代码放在该表中。

是否可以创建或格式化新工作表,而无法将任何代码导入其中?

3 个答案:

答案 0 :(得分:3)

以下是将插入的示例代码

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox "Hello World"
End Sub

在新工作簿的新工作表中。

Sub Sample()
    Dim wb As Workbook, ws As Worksheet
    Dim VBP As Object, VBC As Object, CM As Object
    Dim strProcName As String

    Set wb = Workbooks.Add
    Set ws = wb.Sheets(1)

    Set VBP = wb.VBProject
    Set VBC = VBP.VBComponents(ws.Name)
    Set CM = VBC.CodeModule

    strProcName = "Worksheet_SelectionChange"

    With wb.VBProject.VBComponents( _
    wb.Worksheets(ws.Name).CodeName).CodeModule
        .InsertLines Line:=.CreateEventProc("SelectionChange", "Worksheet") + 1, _
        String:=vbCrLf & _
        "    Msgbox ""Hello World"""
    End With
End Sub

请根据您的需要进行修改。

您需要确保选择Trust access to Visual Basic Project。要选择它,请按照THIS LINK

中提到的步骤操作

答案 1 :(得分:1)

我不知道将代码放入Excel文件的简单方法。 有人可能会考虑直接更改XML结构(xlsx文件基本上是xml和代码文件的压缩目录)。 但您是否考虑过使用XLAM(Excel插件)文件,这些文件可以包含代码并导入所有需要使用它的用户。当用户启动它时,将用Excel打开。根据您的设置,这可以帮到您?

答案 2 :(得分:0)

查看您正在生成的工作簿的VBProject属性。您应该可以操作它,添加包含所需代码的新VBComponents项目。

http://msdn.microsoft.com/en-us/library/office/ff194737.aspx

这需要进行适当的安全设置。

以下是与此主题相关的其他网站上的主题:

http://www.mrexcel.com/forum/excel-questions/663848-access-vbulletin-project-not-trusted.html

我自己没有尝试过,所以我无法提供更多细节。