打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
老司机说:编写vba这些地方不注意,肯定要翻车



1、Sub过程名要取得有意义[驼峰命名法]

如(主程序|方法):

Sub Main()

'代码块

End Sub


再如(函数过程获取一个名字):

Function GetName() as String

'代码块

GetName=代码块'那个名字

End function


再如(函数过程执行SQL语句,[可选无返回值]):

Function SetSql(sql as String)

'代码块

cnn.Execute(sql)

'代码块

End function


2、变量名得有意义。

    如(字符串):dim str as String

        (累加求和):dim sum as Long

    再如(年龄):dim age as Integer

         (数组):dim arr()


3、指明[Range |Cells]对象。

    如:Sheet1. Range('A1')

         Sheet1.[A1]

         Sheet1.Cells(1,1)

    当在标准模块不指明该对象时,则vba会执行当前活动工作表的Cells,在把数据错误写入表格时将无法恢复。


4、指明vba内置函数对象。

    如(统计字符数):VBA.Len('工作表')

      (转义回车):VBA.Chr(13)

      (获取年份): VBA.Year (Now)

    如写成Year (Now),在本机上完美执行,可你写的vba程序要运行于他人电脑,则有可能会报错(如下图)。

    

    所以为避免错误,尽量使用VBA对象

    

5、使用强制声明。

    如:在代码的顶部加上Option Explicit

    或:

    

注:不强制变量声明,虽然也不会在本机出错,但在其他电脑运行可能会报错(找不到工程或库)。


6、创建(引用)外部对象。

引用字典、正则表达式、(Excel中引用)word对象等外部对象时,建议在写代码的时候使用【前期绑定法】,代码(给他人)使用时用【后期绑定法】。

【前期绑定法】

Option Explicit


Sub Test1()

Dim wd As New Word.Application

Dim Doc As Document


   Set Doc = wd.Documents.Add '创建

       wd.Visible = True '显示word程序

       Doc.SaveAs 'D:\123.docx' '另存

       Doc.Close '关闭文档       

       wd.Quit '关闭word程序

       End Sub


【后期绑定法】

Sub Test1()

Dim wd As Object

Dim Doc As Object

   Set wd = CreateObject('Word.Application')'后期绑定

   Set Doc = wd.Documents.Add '新建word

       wd.Visible = True '显示word程序

       Doc.SaveAs 'D:\123.docx' '另存

       Doc.Close '关闭文档

       wd.Quit '关闭word程序       

End Sub

注:使用前期绑定有代码提示,后期绑定则没有。


7、使用缩进对齐。

    缩进对齐使得代码块有层次感。

    如下:

Sub Test()'循环向A1到A11单元写入相应的行号

Dim k As Integer

Dim rng As Range

   Set rng = Sheet1.Cells(1, 1)   

   For k = 0 To 10

       With rng.Offset(k) 'A1单元格向下偏移k行

           .Value = .Row '等于循环单元格的行号

       End With

   Next

End Sub


8、使用注释。

    重要代码(块)要写注释,便于维护。如不写注释,过一段时间你自己维护或者增减功能都会先懵上一圈。


9、常保存与备份。

    经常【保存|备份】写好的代码,可以应对突然停电、司机、程序崩溃等意外情况。

    小编好几次写了几小时的代码因忘记保存遇到程序调试崩溃而重写的经历,多么痛的领悟!


10、其他。

如小编还有漏写的,可以留言补上,咱们一起进步。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
关于VB或VBA代码中前期绑定与后期绑定的区别
word信息提取
付费答疑的小伙伴都问了哪些问题?
咕吧课堂陪你学:巧用VBA代码实现自动批处理,轻松又高效!
Excel之VBA常用功能应用篇:VBA等差数列实例讲解
Word VBA技术:判断表格中的单元格是否为空
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服