首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBIDE.CodeModule.DeleteLines过程不工作

VBIDE.CodeModule.DeleteLines过程不工作
EN

Stack Overflow用户
提问于 2020-06-04 23:10:26
回答 1查看 65关注 0票数 0

我正在尝试将数据从现有工作簿添加到新的工作簿代码模块。我的大部分代码都运行得很好,但由于某些原因,我的.deletelines事件无法工作。我正在尝试删除Workbook_Open事件过程中的现有行(此工作簿是具有现有过程的工作簿的副本,我想要一个不同的新过程)。并且这段代码不会删除这些行。然而,当我去掉这一行时,它只是创建了一个新的Workbook_Open事件过程,然后我有了两个事件过程,然后我得到了一个错误。到目前为止,这是我的代码。

代码语言:javascript
复制
'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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-05 00:05:17

我意识到我需要在自己的行上使用.DeleteLines事件,因此之前通过设置xline=88(行号),然后在.DeleteLines xline下面的下一行建立了行号

代码语言:javascript
复制
    With xMod
        xLine = 88
        .InsertLines xLine, ""
        xLine = xLine + 1
        .DeleteLines xLine
        .InsertLines xLine, "   Dim y As Workbook"
        xLine = xLine + 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62198022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档