Han*_*nah 4 excel vba excel-vba
我正在创建一个宏,部分宏功能是让VBA创建一个新的电子表格.由于分发的性质,名称将改变.我需要在此电子表格中添加代码.无论如何我能做到吗?
Jook已经解释了它是如何工作的.我会更进一步.
添加工作表的语法是
expression.Add(Before, After, Count, Type)
Run Code Online (Sandbox Code Playgroud)
如果您检查内置Excel的帮助下,你可以看到Before,After,Count,Type代表
来自EXCEL的帮助
参数(所有4个参数均为可选)
Before - 一个对象,指定添加新工作表之前的工作表. After - 一个对象,指定在其后添加新工作表的工作表. Count - 要添加的页数.默认值为1.Type - 指定图纸类型.可以是下列XlSheetType常量之一:xlWorksheet,xlChart,xlExcel4MacroSheet,或xlExcel4IntlMacroSheet.如果要基于现有模板插入工作表,请指定模板的路径.默认值为xlWorksheet.创建工作表后,您需要使用.insertlines创建相关过程并嵌入要运行的代码.
注意 - IMP:如果希望代码在VBA项目中嵌入代码,则需要确保选择" 信任访问VBA项目对象模型 ".查看快照.

下面是我创建工作表然后嵌入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
Run Code Online (Sandbox Code Playgroud)
这是运行上述代码后新工作表代码区域的外观.

| 归档时间: |
|
| 查看次数: |
11439 次 |
| 最近记录: |