是否可以创建一个新的Excel工作表,然后将VB代码自动放入该工作表中?
到目前为止,这是我所做的。名为“模板”的工作表包含用户需要输入的所有信息的输入。我进行了各种检查,以确保在执行其他任何操作之前,所有字段均已填写且正确填写。当他们单击某个单元格以执行脚本时,它将打开一个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
请根据您的需要进行修改。
您需要确保选择
Trust access to Visual Basic Project
。要选择它,请遵循THIS LINK中提到的步骤。