正在写一份 VBA 的入门手册,求各位大佬大神斧正 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
vlean
V2EX    程序员

正在写一份 VBA 的入门手册,求各位大佬大神斧正

  •  1
     
  •   vlean 2017-09-19 10:38:01 +08:00 5267 次点击
    这是一个创建于 2945 天前的主题,其中的信息可能已经有所发展或是发生改变。

    正在写一份给初学者(非程序员)用的 VBA 参考手册,计划主体有四部分:

    • VBA 语法说明
    • VBA 界面说明
    • VBA 常用对象说明
    • 示例

    现在已经写完了,第一部分语法说明

    欢迎大家提下对文档的意见。 另外,不知道要怎么写才能让新手更快入门,欢迎各位大佬斧正。

    文档地址: 简明 Excel VBA

    ps:我不是做 VBA 的,也是一边看别人资料,一边整理。

    第 1 条附言    2017-09-20 17:54:38 +08:00

    文档的问题或者感兴趣的内容,欢迎大家提 Issue

    有提交的欢迎提交pull request

    29 条回复    2017-11-12 16:00:05 +08:00
    ajan
        1
    ajan  
       2017-09-19 10:52:02 +08:00
    棒棒哒
    jydeng
        2
    jydeng  
       2017-09-19 10:58:16 +08:00
    赞一个
    meisky6666
        3
    meisky6666  
       2017-09-19 10:58:58 +08:00
    推荐给身边的会计
    laycher
        4
    laycher  
       2017-09-19 11:08:20 +08:00
    整理总比不整理好。
    vlean
        5
    vlean  
    OP
       2017-09-19 11:26:12 +08:00
    @meisky6666 好的 可以让他看看有什么需要补充的 或者他需要哪一块的
    vlean
        6
    vlean  
    OP
       2017-09-19 11:26:54 +08:00
    @laycher 也是各种原因 才准备写的
    depress
        7
    depress  
       2017-09-19 11:38:26 +08:00   5
    我觉得啊,你要是写一个面对非程序员的手册,我给你两条建议:第一,VBA 市场里 office 版本混乱,高版本编写的在低版本里可能运行有问题,最好说清楚你的教程是用哪个版本写的。第二,程序员类描述语言尽量别出现,非程序员可不知道冒泡排序是什么东西,更重要的是这个排序能解决什么问题。

    但是你要是为了让人更快入门,手册性质的教学不是好办法,手册是用来查的,不是用来学的。学习 VBA 的人不是因为要找 VBA 开发的职位,而是有个现成的问题需要解决,他们需要的教程是①VBA 是什么②从哪进入开发③怎么看开发结果④基础开发知识⑤实际问题解决,对应起来我更愿意①录制一个宏,查看宏源码,告诉他们这就是 VBA,②然后告诉他们怎么在界面调出开发工具进入编码窗口,③然后编写一个简单的例子拉出一个按钮设置按钮宏,让他们知道点一下按钮就能看到代码结果,④结合刚才编写的例子讲解基础知识,⑤最后判断目前的问题是哪一类的,找对应类的例子加以修改扩充。以我学习 VBA 的路来看,最重要的还是例子,所以把常见的问题从简到难列出来进行讲解是很不错的方式,像数据库连接这种偏难的知识就不要放基础知识讲解里了,直接在对应的例子里说明就好。其实现在 VBA 开发的视频教程、书籍都有,都挺不错的,所以感觉你也不用像我说的似的写这么详细,还是写个手册更靠谱。
    vlean
        8
    vlean  
    OP
       2017-09-19 12:07:44 +08:00
    @depress 多谢了, 版本这个确实要注意下 ,我再查找资料的时候也碰到了会说到版本的问题,尤其是 MSDN 官方文档里的。
    最开始写目的是想给朋友提供一个简要说明 VBA 各个相关知识点的速查手册。了解了基础之后哪部分忘了就可以通过这个快速检查下了。
    给新手直接讲例子这个可以有。后面我注意下多增加些例子。
    VBA 开发的视频教程,我也收集下放到参考资料里把。
    sss3600123
        9
    sss3600123  
       2017-09-19 13:03:54 +08:00 via iPhone
    多谢
    LokiSharp
        10
    LokiSharp  
       2017-09-19 14:09:22 +08:00
    有啥办法能替换 Office 里面的 VBA 编辑器么?
    vlean
        11
    vlean  
    OP
       2017-09-19 15:05:45 +08:00
    @LokiSharp 这个好像没有,其实我想让他学的是用 python 操作 excel 获取数据 然后再输出 -_- 但是他们公司内部用的都是 vba 所以才写了这份文档
    Alexhex
        12
    Alexhex  
       2017-09-19 15:40:35 +08:00   2
    并不是想要打击楼主但是


    http://analystcave.com/vba-cheat-sheet/
    vlean
        13
    vlean  
    OP
       2017-09-19 15:44:53 +08:00
    @Alexhex

    不打击 可以参考下 翻译一部分。
    挺好的 多谢
    showjim
        14
    showjim  
       2017-09-19 16:15:17 +08:00
    加油 LZ,以后有空的话来帮忙
    kumitom
        15
    kumitom  
       2017-09-19 16:19:19 +08:00   1
    例如 sum(10,9)结果就是 10 了?
    huage
        16
    huage  
       2017-09-19 16:34:39 +08:00
    亚马逊上有相关 vba 的书箱,你看一下就知道怎么写目录了
    vlean
        17
    vlean  
    OP
       2017-09-19 16:42:11 +08:00
    @kumitom 多谢 已经修改 本来是埋的点。。。
    vlean
        18
    vlean  
    OP
       2017-09-19 16:44:34 +08:00
    @huage 现在在参考的有两本书 然后对里面的内容缩减了下 做成类似知识点手册的了
    fangbei
        19
    fangbei  
       2017-09-19 16:59:58 +08:00
    挺好的,这样边整理边写,也能增强自己的逻辑和叙事能力。即使有其他资料,我觉得你写出来也肯定与其他人的不一样,因为每个人的逻辑能力和描述能力都不同。
    前面 depress 的方法就挺好,入门新手就应该一步一步(不要嫌麻烦)详细列出来。
    xiandao7997
        20
    xiandao7997  
       2017-09-19 17:24:13 +08:00
    粗略看了下 一开始没讲怎么进入 vba 开发环境?一般对于初学者来说先有环境才能继续在上面折腾。。
    vlean
        21
    vlean  
    OP
       2017-09-19 17:53:39 +08:00
    @fangbei 好的,涉及到操作,写法上的细节 还是得用视频或动图 文本格式的对细节描述的过多感觉有些冗余
    vlean
        22
    vlean  
    OP
       2017-09-19 17:54:42 +08:00
    @xiandao7997 恩 那写完界面说明之后 把这章放前面 就可以了
    dsg005
        23
    dsg005  
       2017-09-19 17:55:05 +08:00
    是雅正
    vlean
        24
    vlean  
    OP
       2017-09-19 18:30:00 +08:00
    @dsg005 debug
    happy8109
        25
    happy8109  
       2017-09-19 22:59:18 +08:00
    更想看 Word VBA,excel VBA 网上手册教程比较多,但关于 Word 的确很少
    vlean
        26
    vlean  
    OP
       2017-09-20 09:48:15 +08:00
    @happy8109 office vba 的基础语法差不多
    应该不会写 word vba 的 不过可以参考下 MSDN 的官方文档
    [office VBA]( https://msdn.microsoft.com/zh-cn/library/office/ff604039(v=office.14).aspx)

    [word vba 参考]( https://msdn.microsoft.com/ZH-CN/library/office/ee861527.aspx)
    Mavious
        27
    Mavious  
       2017-09-20 15:08:53 +08:00   1
    嗯,作为一个非程序猿,写过 vbs,写过极其简单的 py,十分赞同 @depress 的回答。
    别的不说,就以我的立场来谈谈非程序猿遇到问题的时候,是怎么思考的吧。

    非程序猿为什么要写代码?还不是强需求造成的。
    我不太可能去读基础知识,但是我要解决目前的困难呀。

    于是我先百度一堆能解决类似需求的代码,然后努力读懂它。
    读懂了再改造成我要的样子。

    如果我的需求很难很难,我不会自己研究了,直接聘一个专业的来写。
    艰深的东西不是非程序猿需要的。

    遇到困难,我一般直接百度:
    if __name__ == '__main__'毛意思?能不能删了?
    为什么有的函数后面是个空括号“()”,有的括号里有内容?
    这行代码要加在哪一行呢?不小心放错了位置就死循环了。
    数组毛意思?能解决我遇到的分割问题吗?
    list index out of range 报错咋决?
    用 py 打开网页怎么写?
    发出警报声怎么写?
    如何遇到网络错误就原地复活,而不是自动自发的挂了?
    如何 print 当前时间?
    只选定数字的正则怎么写?(速速翻阅巨硬的语法手册就知道啦)

    我查 requests 模块的文档时,我只是想知道 timeout 会不会影响程序运行时间,而不是从头读起。
    所以,丰富的实例(尤其是恰好能套入我需求的实例);用简单易读的语言描述这句话到底能实现啥(不是解释这句代码的前世今生)。才是非程序猿需要读的内容。
    vlean
        28
    vlean  
    OP
       2017-09-20 17:34:11 +08:00
    @Mavious 恩 起初准备写这份文档 也是给某个人准备的
    正在问她更需要哪些方面
    之后准备将这些加入到示例说明里


    所以现在要做的是一个速查各个知识点的手册,一个更丰富适合新手的示例了
    wisefree
        29
    wisefree  
       2017-11-12 16:00:05 +08:00
    so good!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5956 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 01:59 PVG 09:59 LAX 18:59 JFK 21:59
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86