乔克已经解释了它是如何工作的。我会更进一步。
添加工作表的语法是
expression.Add(Before, After, Count, Type)
如果你检查内置的 Excel 帮助,你可以看到什么Before
, After
, Count
, Type
代表
来自 Excel 的帮助
参数 (所有 4 个参数都是可选的)
-
Before
- 指定在其之前添加新工作表的工作表的对象。
-
After
- 一个对象,指定在其后添加新工作表的工作表。
-
Count
- 要添加的页数。默认值为一。
-
Type
- 指定图纸类型。可以是以下 XlSheetType 常量之一:xlWorksheet
, xlChart
, xlExcel4MacroSheet
, or xlExcel4IntlMacroSheet
。如果要插入基于现有模板的工作表,请指定模板的路径。默认值为 xlWorksheet。
创建工作表后,您需要使用.insertlines
创建相关过程并嵌入您想要运行的代码。
注意-IMP:如果你想让代码在VBA项目中嵌入代码,你需要确保你有“信任对 VBA 项目对象模型的访问” 已选择。请参阅快照。
![enter image description here](https://i.stack.imgur.com/U7xHY.png)
这是一个示例,其中我创建一个工作表,然后嵌入一个Worksheet_SelectionChange
将显示消息“Hello World”的代码
代码 - 经过尝试和测试
Option Explicit
Sub Sample()
Dim ws As Worksheet
Dim nLines As Long
Dim VBP As Object, VBC As Object, CM As Object
Dim strProcName As String
Set ws = Worksheets.Add
Set VBP = ThisWorkbook.VBProject
Set VBC = VBP.VBComponents(ws.Name)
Set CM = VBC.CodeModule
strProcName = "Worksheet_SelectionChange"
With ThisWorkbook.VBProject.VBComponents( _
ThisWorkbook.Worksheets(ws.Name).CodeName).CodeModule
.InsertLines Line:=.CreateEventProc("SelectionChange", "Worksheet") + 1, _
String:=vbCrLf & _
" Msgbox ""Hello World!"""
End With
End Sub
这就是运行上述代码后新工作表代码区域的外观。
![enter image description here](https://i.stack.imgur.com/eoEBz.png)