当前位置: 首页 > 知识库问答 >
问题:

注释来自另一个VBA代码的vba代码

尚声
2023-03-14

我想对包含来自另一个代码VBA的消息框的行进行注释。我正在用库VBA扩展性尝试这一点,但我没有找到解决方案

欢迎任何帮助。

这是我的代码:

Sub CommentCode()
        Dim VBProj As VBIDE.VBProject
        Dim VBComp As VBIDE.VBComponent
        Dim CodeMod As VBIDE.CodeModule
        Dim LineNum As Long
        Const QUOTE = ' 

        Set VBProj = ActiveWorkbook.VBProject
        Set VBComp = VBProj.VBComponents("ThisWorkbook")
        Set CodeMod = VBComp.CodeModule

        With CodeMod
            LineNum = .CreateEventProc("Open", "Workbook")
            LineNum = LineNum + 1
            .InsertLines LineNum,  QUOTE 
        End With
    End Sub

共有2个答案

田修为
2023-03-14

我已经找到了解决我的代码问题的方法:

Sub CommentCodeModule(wb As Workbook)
        Dim VBProj As VBIDE.VBProject
        Dim VBComp As VBIDE.VBComponent
        Dim CodeMod As VBIDE.CodeModule
        Dim WordToFind As String
        Dim SL As Long ' start line
        Dim EL As Long ' end line
        Dim SC As Long ' start column
        Dim EC As Long ' end column
        Dim Found As Boolean
        Dim LineNum As Long
        Set VBProj = wb.VBProject
        Set VBComp = VBProj.VBComponents("Module3")
        Set CodeMod = VBComp.CodeModule

        WordToFind = "test"

        With CodeMod
            SL = 1
            EL = .CountOfLines
            SC = 1
            EC = 255
            Found = .Find(target:=FindWhat, StartLine:=SL, StartColumn:=SC, _
                EndLine:=EL, EndColumn:=EC, _
                wholeword:=True, MatchCase:=False, patternsearch:=False)
            Do Until Found = False
                Debug.Print "Found at: Line: " & CStr(SL) & " Column: " & CStr(SC)
                EL = .CountOfLines
                SC = EC + 1
                EC = 255

                Found = .Find(target:=FindWhat, StartLine:=SL, StartColumn:=SC, _
                    EndLine:=EL, EndColumn:=EC, _
                    wholeword:=True, MatchCase:=False, patternsearch:=False)
            Loop
             LineNum = SL
             .DeleteLines LineNum

            .InsertLines LineNum, "  ' test"
        End With
    End Sub

感谢所有帮助我的人。

叶淇
2023-03-14

首先,请改变

<代码>常量QUOTE='

对此:

Const QUOTE=“””

基本上,您的引号(或Rem)将是一个字符串,需要用引号括起来。

至于VB Extensibilty,您可能需要在找到该行后删除该行,并在开头插入带有注释的新行。

参见Chip Pearson:在VBA编辑器中编程

 类似资料:
  • 注释用于记录程序逻辑和用户信息,其他程序员将来可以阅读并理解相同的代码无缝工作。 它包括由开发者,修改者以及还可以包括合并逻辑的信息。 解释器在执行时忽略注释。 VBA中的注释用两种方法表示,它们分别如下 - 任何以单引号()开头的语句都被视为注释。以下是注释的一个例子。 任何以关键字开头的语句。以下是注释的一个例子。

  • VBA示例代码查看:点击这里。

  • 在Office的VBA编辑器(ALTF11)中,如何注释或取消注释代码块?

  • 我想将我的VBA代码实现到SAS代码中,这样一次运行就可以完成整个过程。我的SAS代码读取一个大SAS表,进行一些转换,最后导出到Excel文件(代码如下)。我还在Excel文件中编写了一些VBA代码(例如,对某些变量进行自动筛选,您可以看到下面的代码)。 这张桌子看起来像这样: 然而,我想将我的VBA代码实现到SAS代码中,这样我就可以一次运行完成整个过程。我知道如何在SAS中打开和运行Exce

  • 一旦进入,它从新打开的工作簿中调用另一个子例程,子例程运行良好(需要2-3分钟),但随后代码自动退出循环(我的意思是它不打开循环中的下一个文件)。是因为被调用宏的处理时间吗?我可以用一些关于这个问题的见解,这将是非常有帮助的。提前致谢:) 末端接头

  • 本文向大家介绍使用VBA宏调用ABAP代码,包括了使用VBA宏调用ABAP代码的使用技巧和注意事项,需要的朋友参考一下 请尝试使用以下脚本-