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

标签 excel vba

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

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

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

这是否可以做到,或者只能创建一个新工作表并对其进行格式化,而无法将任何代码导入其中?

最佳答案

这是一个将插入的示例代码

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

请修改它以满足您的需要。

您需要确保选择信任对 Visual Basic 项目的访问。要选择它,请按照 THIS LINK 中提到的步骤操作。

关于excel - 是否可以在生成新工作表时自动输入VBA代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20450440/

相关文章:

mysql - 为什么连接字符串只能在开发机器上工作?

excel - 如果条件满足 VBA,则将数据从一个单元格复制到另一个单元格

vba - 如何在剪贴板中放置文本,以便将其作为表格粘贴到 Word 中?

vba - 无模式 MsgBox、错误捕获、.Find

VBA 选择案例运行时错误 13

Python 与 Excel,计算单元格数量

VBA 运行时错误 '1004'

python - excel.make_response_from_query_sets 返回 TypeError None

excel - 使用第一个空白上方的单元格中的值填充不连续的空白单元格

c# - vba - 扫描文档中的宏并替换宏文本?