Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

后天的代码,我想用按钮来触发是否注释的功能,VBA该怎么写?

布鲁斯  发表于:2013-11-26 13:43:18  
复制

如题:我想将一段代码注释起来(非手动)

通过一个按钮区触发。


比如:我有一段代码:

    DoCmd.Close acForm, "f_eng_menu"
    DoCmd.Close acForm, "f_eng_退出系统记录窗体"
    DoCmd.OpenForm "f_eng_login"
    Forms!f_eng_login.密码 = Null

我在一定的情况下通过按钮来将其注释。该怎么写VBA的代码呢?

 

Top
cspa 发表于:2013-11-26 14:45:24

为什么要注释呢?

设置一个if语句,一定情况下才执行不就行啦。

if 某个该执行以下语句的条件为真 then

    DoCmd.Close acForm, "f_eng_menu"
    DoCmd.Close acForm, "f_eng_退出系统记录窗体"
    DoCmd.OpenForm "f_eng_login"
    Forms!f_eng_login.密码 = Null

  else

   ...

end if

其他语句...

 



叶海峰 发表于:2013-11-26 15:31:50
Public Sub AutoMarkCodes(ModuleName, ProcName)
'---------------------------------------------------------------------------------------
' Procedure : AutoMarkCodes
' DateTime  : 2013-11-26 15:22
' Author    : 叶海峰
' ModuleName:模块名
' Procname  :过程或函数名
' 调用方法: Call AutoMarkCodes 模块名,过程名
' 注:该方法只适用于标准模块(包括窗体,报表中的过程等等),不适用与类模块,窗体模块名为 Form_窗体名,报表为Report_报表名
    Dim mymodule As Module
    Dim str    As String
    Dim i
    Dim startline
    Dim endline


    Set mymodule = Application.Modules(ModuleName)


    With mymodule
        startline = .ProcBodyLine(ProcName, vbext_pk_Proc) + 1
        endline = .ProcCountLines(ProcName, vbext_pk_Proc)
        For i = startline  To startline + endline
        If .Lines(i, 1) Like "*End Sub*" Or .Lines(i, 1) Like "*End Function*" Then Exit For
            .ReplaceLine i, "'" & .Lines(i, 1)
        Next
    End With
End Sub




Sub test()
AutoMarkCodes "模块1", "DataBaseInfo"
End Sub


如果需要指定对其中数行注释,请手动将stratline 和 endline变量赋值.


布鲁斯 发表于:2013-11-27 09:47:21
2位的建议都很棒

总记录:3篇  页次:1/1 9 1 :