首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用代码删除代码

使用代码删除代码
EN

Stack Overflow用户
提问于 2018-02-15 16:21:01
回答 1查看 1.3K关注 0票数 1

我在谷歌上搜索过这个,并找到了多种解决方案,但没有一个对我有用。我倾向于相信这是因为我在Excel中使用VBA编程的知识和能力有限。如果这是一个重复的问题,问题已经张贴在这里,我道歉。

问题是:

我有一个在打开Excel工作簿上执行的代码。执行的代码将工作簿保存为位于单元格中的值的名称下的新工作簿。我需要在打开Excel工作簿上执行的代码,不要在已经创建的新副本上运行。我能想到的最好的方法就是有一个代码来删除在打开时执行的部分或全部代码。我以前见过这方面的解决方案,我知道有一个解决方案,但我不知道如何将代码正确地实现到我的程序中,所以它可以工作,我甚至不知道我找到的代码是否能工作,这就是为什么我没有在这里提供它。下面是到目前为止,我有一些注释来解释我在代码中需要什么的代码。这方面的任何帮助都将是巨大的。

谢谢

代码语言:javascript
复制
Private Sub Workbook_Open()

 'Saves filename as value of C10 

Dim newFile As String, fName As String

fName = Range("C10").Value

newFile = fName & " " & Range("E9").Value

ChDir Range("A8")
ActiveWorkbook.SaveCopyAs Filename:=newFile

'Need code to delete a line of code or all code to prevent the code above from executing when the new Worksheet that has been created is opened.

ActiveWorkbook.Close False
End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-15 16:52:30

这个代码会删除事件。你保存了一份工作簿,所以我的想法是

  1. 你做什么都行
  2. 删除Workbook_open宏
  3. 保存到新的工作簿(宏的那一部分不会)
  4. 不会在原始工作簿中保存更改,因此Workbook_Open宏将始终是安全的。

无论如何,先对它进行几次测试,以确保其工作正常。用VBA本身来修改VBA代码可能会产生一些奇怪的东西。

希望这能有所帮助。

所有学分都归OZGRIZ所有

此外,确保您签入Excel选项->受信任的站点->受信任站点的设置->宏设置->检查对Visual编辑器的信任访问

代码语言:javascript
复制
Sub DeleteWorkbookEventCode()

''Needs Reference Set To _

    '"Microsoft Visual Basic For Applications Extensibility"

'Tools>References.

'Also, make sure you check in Excel Options->Trusted Sites->Settings of Trusted Sites-> Macros Setting-> Check Trust access to Visual Basic Editor

Dim i As Integer
Dim MyStart, MyEnd As Integer

With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule

MyStart = 0

    For i = 1 To .CountOfLines Step 1
        If .Lines(i, 1) = "Private Sub Workbook_Open()" Then MyStart = i

        If .Lines(i, 1) = "End Sub" And MyStart > 0 Then
            MyEnd = i
            Exit For
        End If
    Next i

    .DeleteLines MyStart, (MyEnd - MyStart) + 1

End With

End Sub
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48811786

复制
相关文章

相似问题

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