0

我正在遍历目录中的所有 .xls 文档,并在每个文件组件“ThisWorkbook”中更改一行

一切正常,代码打开文件,我可以在运行时看到“test”行已插入 ThisWorkbook。但是保存不起作用。保存功能是否仅适用于工作表?如何保存组件中的更改?

  excelfile = Dir(path & "*.xls")
  Do While excelfile <> ""
    If excelfile <> "merni.xlsm" Then
        Set wbResults = Workbooks.Open(Filename:=path & excelfile)
        wbResults.Unprotect Password:=""
        DoEvents
        Set codeModule = wbResults.VBProject.VBComponents("ThisWorkbook").codeModule
        With codeModule.InsertLines(3, "test")
        End With
        wbResults.Save
        wbResults.Close
    End If
    excelfile = Dir
  Loop
4

1 回答 1

2

这段代码对我有用

Sub AddTest()

    Dim wb As Workbook
    Dim cm As CodeModule

    Set wb = Workbooks.Open("C:\Users\dick\Book3.xls")
    Set cm = wb.VBProject.VBComponents.Item("ThisWorkbook").CodeModule
    cm.InsertLines 3, "test"
    wb.Save
    wb.Close

End Sub

但是有了这条线

    With cm.InsertLines(3, "test"): End With

它不会编译事件。InsertLines 是一种方法,不返回对象,所以我很确定您不能将它与 With 块一起使用。

于 2012-07-02T21:33:19.843 回答