2.4.4. 授人鱼不如授人以渔

此部分内容,其实在之前第 2.3 节 “Word VBA”中,已有提到,此处再次强调一下。

在学习VBA(和任何类似知识)的过程中,学会利用系统已有资源。

即,在VBA中,可以供我们利用的资源,至少有这些:

  1. VBA中的对象浏览器(Object Browser)

    可以通过在写VBA代码的过程中,对于任何你不太懂,想要了解更多细节的内容,选中该内容,比如我想要了解workbook,那就选中workbook,然后右键⇒Object Browser,即可在Object Browser中查找到你所要的内容,其中可以直观快速地看到对应目标所具有的变量成员和函数等,很是方便。

  2. 内置的Help

    选中想要查询的内容,然后按F1,VBA即可调用Help帮助系统,可以查询到更多的细节和实例用法。

    例如,我知道了workbook是对应于当前Excel文件,想要了解workbook有哪些属性和方法,

    那么可以去F1的Help中输入workbook,然后搜索到很多条目,其中第一条就是:

    Workbook Object Members

    Article Represents a Microsoft Excel workbook. Methods Name Description AcceptAllChanges Accepts all changes in the specified shared workbook. Activate Activates the fi...

    然后点击进入后,就可以看到"Workbook Object Members"的页面,其中有三部分:Methods,Properties,Events

    里面有你想要的所有的成员和函数等。

    比如,表示当前Excel的文件名的.Name的属性,文件全名(包括路径和文件名)的.FullName的属性等。

    然后你也可以通过Msgbox去自己尝试打印出来看看,都是什么值:

    MsgBox ActiveWorkbook.Name
    MsgBox ActiveWorkbook.FullName
                    

    这样的话,你就可以可以通过自学的方式,去搞懂很多内容了。

  3. 通过录制宏去照葫芦画瓢

    如果还是不会操作,那么可以去通过VBA提供的录制宏的功能,来实现搞懂VBA系统是如何将你对应的操作转化为对应的VBA代码的,然后你就可以照葫芦画瓢了。

    比如,我打开两个Excel文件,将其中一个Excel中的某个单元格的内容,选中后复制,然后切换到另外一个Excel文件,选中某个单元格,按了Ctrl+V粘贴,然后按了Ctrl+S来保存,如此这段操作,通过录制宏,得到如下代码:

    Sub Macro3()
    ‘
    ‘ Macro3 Macro
    '
        Range("B3″).Select
        Selection.Copy
        Windows("EWR_tracking_list_enabledMacro.xlsm").Activate
        Range("O152″).Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        ActiveWorkbook.Save
        Windows("ROSH1.xlsx").Activate 
    End Sub
                    

    所以,如果你想要实现类似的操作,至少是复制粘贴等动作,就可以参考上述代码了。

    [提示]Excel中如何录制宏

    View⇒Macro⇒Record Macro,跳出对话框让你输入要录制的话宏的名称,随便起个名字,然后你就可以去随心所欲地操作了,

    操作完成后,再去View⇒Macro⇒Stop Macro,即可。

    此时,再去View⇒Macro⇒View Macro去查看你刚录制的宏,即可看到对应的VBA代码。

通过上述方法,基本上大部分内容,都可以自己自学而搞懂。

有人会问,那么我最开始使用VBA的话,连一些基本概念和其他一些常见操作都不会,连对应的关键字都不知道,那么又如何去查询对应关键字呢?

答案是,学会利用baidu和google,可以查询你要实现的操作,往往都会找到相关内容的,即使没有找到直接的答案,但是也可以找到对应的相关的关键字,然后就可以通过上述Object Browser和F1的Help,找到更多的细节的用法,如果足够细心和能够举一反三,相信很多的内容,都可以自己发掘并实现的。

如果还是没搞懂,普通的操作,也是可以通过录制宏的方式,然后去实际操作,最后查看所录制的宏的代码中,是如何操作的,你就可以照葫芦画瓢了。