VBIDE.CodeModule.DeleteLines过程不起作用

问题描述 投票:0回答:1

我正在尝试将数据从现有工作簿添加到新的工作簿代码模块。我的大多数代码运行良好,但是由于某种原因,我的.deletelines事件无法正常工作。我正在尝试删除Workbook_Open事件过程中的现有行(此工作簿是具有现有过程的工作簿的副本,并且我需要其他新过程)。并且此代码不会删除这些行。但是,当我摆脱这一行时,它只是创建了一个新的Workbook_Open事件过程,然后我遇到了两个错误。到目前为止,这是我的代码。

'make data chart
Dim y As Workbook
Dim z As Workbook
Dim y1 As Worksheet
Dim z1 As Worksheet

Set y = Workbooks.Open(sPath)
Set z = Workbooks.Open("P:\HQ INVENTORY\Test Charts\Acs Pull-Chart to edit.xlsm")
Set y1 = y.Worksheets("ACS Pull-Chart to edit")
Set z1 = Workbooks("ACS Pull-Chart to edit.xlsm").Worksheets("ACS Pull-Chart to 
edit")

'add code to new workbook
Dim xPro As VBIDE.VBProject
Dim xCom As VBIDE.VBComponent
Dim xMod As VBIDE.CodeModule
Dim xLine As Long

With y
    Set xPro = .VBProject
    Set xCom = xPro.VBComponents("ACSWorkbook")
    Set xMod = xCom.CodeModule

    With xMod
        xLine = .DeleteLines(.CountOfLines - 3, 3)
        xLine = .CreateEventProc("Open", "Workbook")
        xLine = xLine + 1
        .InsertLines xLine, "   Dim y As Workbook"
        xLine = xLine + 1
        .InsertLines xLine, "   Dim z As Workbook"
        xLine = xLine + 1
excel vba
1个回答
0
投票

[我意识到我需要在自己的行上使用.DeleteLines事件,因此通过设置xline = 88(行号),然后设置.DeleteLines xline下的下一行,来预先建立行号。>

    With xMod
        xLine = 88
        .InsertLines xLine, ""
        xLine = xLine + 1
        .DeleteLines xLine
        .InsertLines xLine, "   Dim y As Workbook"
        xLine = xLine + 1
© www.soinside.com 2019 - 2024. All rights reserved.