首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注释来自其他vba代码的VBA代码

注释来自其他vba代码的VBA代码
EN

Stack Overflow用户
提问于 2013-04-25 22:51:30
回答 2查看 262关注 0票数 2

我想评论的行谁包含来自另一个代码VBA的味精盒子。我正在尝试使用Library VBA的可扩展性,但我找不到解决方案。

欢迎任何帮助。

这是我的代码:

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

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-26 16:26:56

我已经用下面的代码找到了问题的解决方案:

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

感谢所有帮助过我的人。

票数 1
EN

Stack Overflow用户

发布于 2013-04-25 23:05:47

首先,请换衣服。

Const QUOTE = '

要这样做:

Const QUOTE = "'"

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

对于VB Extensibilty,一旦找到行,可能需要删除该行,并在开头插入一个带有注释的新行。

请参阅Chip Pearson: Programming in the VBA Editor

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

https://stackoverflow.com/questions/16218039

复制
相关文章

相似问题

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