Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将代码添加到工作簿_Open()_Excel_Vba - Fatal编程技术网

Excel 将代码添加到工作簿_Open()

Excel 将代码添加到工作簿_Open(),excel,vba,Excel,Vba,我正在尝试编写一段代码,将以下代码放入已创建的新excel工作簿中。生成的代码应该是 Private Sub Workbook_Open() ThisWorkbook.RefreshAll End Sub 目前我正在使用以下代码,新工作簿是活动工作簿 Public Sub AddNewModule() Dim proj As VBIDE.VBProject Dim comp As VBIDE.VBComponent Set proj = ActiveWorkbook.VBProject

我正在尝试编写一段代码,将以下代码放入已创建的新excel工作簿中。生成的代码应该是

Private Sub Workbook_Open()
  ThisWorkbook.RefreshAll
End Sub
目前我正在使用以下代码,新工作簿是活动工作簿

Public Sub AddNewModule()

Dim proj As VBIDE.VBProject
Dim comp As VBIDE.VBComponent

Set proj = ActiveWorkbook.VBProject
Set comp = proj.VBComponents.Add(vbext_ct_StdModule)
comp.Name = "MyNewModule"

Set codeMod = comp.CodeModule

With codeMod
  lineNum = .CountOfLines + 1
  .InsertLines lineNum, "Private Sub Workbook_Open()
  lineNum = lineNum + 1
  .InsertLines lineNum, "ThisWorkbook.RefreshAll"
  lineNum = lineNum + 1
  .InsertLines lineNum, "End Sub"
End With

End Sub

有人知道我哪里出了问题,或者有什么能帮到我的吗?

这就是你正在尝试的(简短而甜蜜)


您是否尝试在私有子工作簿_Open()的末尾添加“结尾处”?(;使用已包含该代码的模板或设置刷新workbok open(无代码打开)时所需的任何内容都要容易得多。
Option Explicit

Sub Sample()
    With ActiveWorkbook.VBProject.VBComponents(ActiveWorkbook.CodeName).CodeModule
        .InsertLines Line:=.CreateEventProc("Open", "Workbook") + 1, _
        String:=vbCrLf & "ThisWorkbook.RefreshAll"
    End With
End Sub