如何开始使用Visual Basic for Applications?

我对本网站首页上显示的丰富知识有些恐惧,但是这让我希望我正在与合适的人交谈。 今天我和我们的程序员有一段非常糟糕的经历,我希望你能提供一些build议。

我是一个办公室pipe理员(主要是文员),我们今天在Microsoft Excel中的一个macros发生了破坏(如果这个描述让我听起来像一个“笨拙的用户”),我很抱歉。 我们的经理打电话给我们的IT部门,他们派出了2名程序员。 第一个人很好,问我是否有兴趣看着他解决问题 – 但第二个人说话,说:“她只是教士,她永远不会得到它。

是的,这很痛苦,但是为了长话短说,我问我的丈夫(谁是“perl”程序员)我可以做些什么来向他们展示我所做的,他推荐了一个叫做“VBA”的东西,因为我与微软Office很多。 他不太确定“VBA”是否正确,所以他build议我参与这个网站的社区(他说他在这里find很多答案)。

我已经研究过谷歌的“VBA”,但实际上有成千上万的结果。 我只是想能够logging和编辑macros的Microsoft Office产品,并可能得到足够好的程序员,我不只是一个“愚蠢的女性pipe理员”。 请问你们中的任何一位,请给我关于下列事项的build议?

  1. “VBA”实际上是我正在寻找的macros和自动化?
  2. 如果不是“VBA”,什么是更合适的起点?
  3. 一个好的书或网站的经验教训?
  4. 还有什么你认为会有帮助的? 他们是否为这样的事情提供大学课程?

乔丹的答案是好的,但是你的问题比你是否知道VBA要深入。 基本上,你有粗鲁的同事,如果你想打动他们,成为一个高技能领域的新手可能不会有帮助。

处理这种事情的更好办法就是告诉那个无礼的人“现在离开我的办公室(不pipe怎么说)”,然后和他的老板谈谈他和同事之间的互动关系。

如果他的老板不给你一个满意的答案,把他的老板拿出来。 等等,直到你find首席执行官,如果这是需要的。

如果没有人把你的指挥系统认为你从#2程序员那里描述的行为是一个问题,那么你必须考虑你所工作的公司是否值得你拥有特定的技能。

如果你不认为你给公司带来了特别有价值的技能,那么你可能不应该太担心别人是否尊重你,尽pipe(a)你还不应该采取那种虐待你描述和(b)你的想法扩展你的技能是令人钦佩的。

…但是,如果你不是一个“天生的程序员”,不要试图强迫你的圆钉进入方孔。

如果是我,我会专注于成为任何人都见过的蠢蠢欲动的办公室pipe理员。 哦,还有一个问题:如果#2的老板不给你一个满意的答复,可以请你的老板把他拿走。 说明你不认为人在文明社会应该遭受这种行为。 再一次,如果他不接受你的投诉,你必须决定是否要去为那种公司工作。

祝你好运!

给我们留言,让我们知道它是如何出来的。

VBA代表Visual Basic for Applications。 我build议阅读维基百科的文章 ,然后查看一些这样的video教程。 我也喜欢“For Dummies”系列,当你想了解你以前从未碰过的东西。 当你有特定的问题,你可以发布在这个网站上。

如果您对VBA有相当的熟练程度,那么您不必为这些问题拨打IT电话。 这可能违背了你们公司的政策,但是我会给你留下道德困境。 如果我想学习VBA,我会按顺序学习这三本书

VBA for Excel for Dummies (Walkenbach) Power Programming for Excel VBA (Walkenbach) Professional Excel Development (Bullen, Bovey, et al) 

与此研究同时,您需要开始解决现实世界的问题。 转到social.msdn.microsoft.com并开始阅读VBA论坛。 回答你可以问的任何问题。 那些你不能,等待别人回答,然后重现问题和解决scheme,让你知道它。 按照vba标签做与stackoverflow问题相同。 如果有什么问题看起来太复杂了,就跳过去下一个问题。

阅读Excel VBA博客http://www.dailydoseofexcel.com/dicks-blogroll/确定地从http://datapigtechnologies.com/blog/和http://blog.contextures.com/开始。; 他们不仅仅是VBA,而且写得很好。

以下是将会发生的事情:在3-6个月里,你将会发现一个全新的世界。 你将为自己和同事写简单的macros,消除你一天中的一些苦差事。 你会开始寻找浪费的过程,你可以用简单的代码来消除。 在6-12个月内,你将变得相当精通。 您不需要IT来解决小问题。 您将成为您办公室中的Excel人员(学习VBA将使您在Excel中更好)。 在帮助你自己的同时,你将会在这里和在MSDN论坛上帮助成千上万的人。

两年后,你可能会开始被MS和社区认可为专家。 你会厌倦在论坛上反复回答相同的问题,所以你会开始一个博客,并指导那里的人。 你会和你的丈夫争论VBA是否是一个“真正的”语言,但是他会为你所完成的事情秘密地为你感到骄傲。 5年后,您将合作编写一本Excel书籍,退出您的工作,成为一名Excel顾问,并学习C#。 YMMV当然。

VBA(Visual Basic for Application)就是你正在看的东西,因为你对macros有兴趣…

在我看来,如果你在Ms-Office有很好的经验,理解起来要容易得多,但是掌握它可能需要一些编程技巧。

简单的学习方法首先是一个问题 。 手头有一个问题,并尝试loggingmacros以自动执行您的任务…然后,您可以看看在Ms-Office套件的Visual Basic编辑器中logging了什么…

尝试阅读和理解生成的每一行代码,作为对你的行动的回应…起初,一切都将是希腊和拉丁…但是,如果你继续这样做,你会很容易地理解它。 。

那么你可以search资料,所有这些search结果对你来说都是很有意义的。

玩得开心

实际上,我开始通过录制macrosin Excel来编程,并查看logging器创build的代码。 找出一个简单的任务,然后logging一个macros。 在Excel 2007中录制macros可以在最右边的macrosbutton下的视图选项卡下find。 我想到的第一个任务之一是用自动filter过滤几行数据,然后打印过滤的部分。 打印后,我删除filter,并select单元格A1。

在录制一个macros观数字之前,每按一下鼠标按顺序。 每次点击或键入macroslogging它。 所以通过排练macros来减lesslogging的颤音代码。 你甚至可以用手写出一个类似于百老汇剧本的剧本。 不要担心logging需要多长时间。 录音机没有时间观念。 为了最好地理解VBA,多次loggingmacros。 抛出一个额外的点击,看看它做了什么。 比较每个macros中的代码。 用上面提到的相同的button来查看代码。 selectmacros并编辑它。 当你觉得adventerous修改编辑器中的代码。 总是logging和复制一份文件,而不是真实的东西。 这样,你可以删除文件,如果它搞砸了。 仅供参考 – macros的停止button通常位于Excel窗口的左下angular。

快乐的学习, – J Man

我以为我会分享我在Excel(主要)和Access中学习VBAmacros的经验。

我需要在Excel中自动执行很多任务,而且我知道所有关于录制macros的知识。 您可以从Excel 2003中的“工具”|“macros”菜单中loggingmacros(我不确定它在2007/2010中是什么)。

然后我决定我需要稍微改变它们,所以我想我会看看录制的代码。 按Alt-F11可将您带入VBA集成开发环境(IDE)。 然后你可以看看你logging的macros,看看他们做了什么。

我会稍微编辑它们,看看发生了什么。 如果我需要做些什么,但我不知道如何,我会search帮助或谷歌,并find优秀的答案在networking上。

我现在是一名VBA开发人员,而且我经常还有一些事情需要我去了解。 在计算机和Office应用程序(尤其是Excel)中拥有强大的背景将有所帮助。 有一个做Perl的丈夫意味着你可以问一些关于语法,variables和编程概念等常规编程的东西,这些东西可能需要额外的解释。 我之前一直在编程,所以这些概念对我来说并不陌生。

祝你好运,记得在Stack Overflow上问一堆问题,你很快就会成为一名专业人士。

很好的问题!

VBA代表Visual Basic for Applications ,是Office附带的macros/自动化工具(您在文章中讨论的macros将用VBA编写)。

VBA听起来像一个完美的匹配:

  • VBA是针对非技术人员,所以被devise为宽容和容易接受。
  • Google包含了关于这个主题的大量信息,所有目标人物(没有技术背景的人只是想制作一个帮助他们的Officemacros)
  • 每天使用Office将会给你一个机会来使用和练习你学到的东西。
  • VBA有一个奇妙的macros录制function,这是非常有用的(尤其是当你正在学习VBA)

就像我说的,Google有关于这个主题的大量信息和介绍性文章(例如, 使用VBA入门 ,select一个好看的例子)。 我build议通过阅读其中一个快速浏览,然后去看看你能做些什么:

  • 使用macros录像机! 如果你不能解决问题,那么只要logging一下你的macros,看看你能不能从它生成的代码中find它。
  • 给自己解决问题。
  • 在这里提问! 🙂

此外,许多地方将提供VBA课程,我肯定会推荐 – 在Google上的指南将很好地显示您的语法,以及如何做某些行动(如如何select某个单元格,或如何做循环),但是他们不会像在编程的问题解决方面那么好 – 因为你真的需要向一个人学习,这个人是一个课程将会非常有用的地方。

作为最后一点,我build议不要试图理解其他人写的macros(例如你在你的问题中提到的macros) – 理解代码要困难得多,除此之外,如果这些程序员的编程技巧与他们社交技巧它可能不是代码,你想要反正学习…

祝你好运!

大家的意见都很好,我想说一点。

VBA就像一个门户药物。 ASP经典和VB6有几乎相同的语法。 我已经将代码从一个移植到另一个,只需要很less的更改。

VB.NET有一个类似的语法。 这意味着,通过学习VBA,你不但可以学习VBA,还可以继续利用这些技能来做比你想象的更多的事情。 你甚至可以知道你对编程有着天生的亲和力,并把它当作职业追求。

谁知道,有一天你可能会成为粗鲁的程序员的老板。 这将是甜美的讽刺。

  1. 是。 VBA代表Visual Basic For Applications 。
  2. VBA是你想要的,如果你有兴趣学习如何自动办公应用程序。
  3. 我推荐John Walkenbach的一本书。 特别是使用VBA进行电源编程。
  4. 不知道大学课程,但你可能不需要一个:我很确定电源编程假定零编程经验。 (但是我读了很长时间了。)

请记住,在你掌握足够的概念来打动你的同事之前可能需要一些时间。 祝你好运。 请记住, 总是这样的混蛋。 不要让他们去遐。 🙂

上述文章中提到了许多有用的资源。 是啊! VBA是你可以在其中编写macros的逻辑的东西。 我只想添加一篇关于MS Word / Excelmacros的文章 。 那里提到了一些基本和棘手的教程。

在回答你的问题…

  1. VBA是用于驱动办公自动化的语言。 正如约旦所说,它代表了Visual Basic(for)Applications
  2. VBA是一个合适的起点,如果你只是想打动办公室开发。 如果你真的想学习如何编程(就像你的丈夫那样),那么就开始学习另一种叫做C ++的语言,但是要警惕它的忙碌的东西。 我build议你谷歌短语“STBA出VBA”或“VBA的初学者”等。 你会find一些有用的教程
  3. 设置一个任务,比如“创build一个可以在电子表格中find我的名字的所有单元格并用'I WIN'取代它们的macros,而不是试图find一本书并学习它。 当你尝试的时候,你会很快想出更具体的问题
  4. 提供课程,Excel和其他办公室课程中的大多数课程将提供macros观编程的高级部分
  5. 询问具体的问题。 不要问我如何写这个程序,而是问我如何在电子表格中find一个特定的单元格。 这样你会得到更好的回应

请注意,VBA有许多样式,因为Excel / VBA中的代码将与Access / VBA中的代码看起来不同。 原因是用法不同(单元格vs数据库)。 看书,链接和代码的vb-helper 。

VBA的许多有用的资源,其中最有用的一点是,当您打开Excel中的macroslogging器时,创build的macros是VBA代码。 Excel是巨大的,试图了解VBA的所有细节将需要花费一些时间,OTOH录制一个macros需要花费几秒钟的时间,并且您将快速了解该语言是如何工作的。

你最好拿到微软Office的副本,并开始使用MS Excel。 Excel女士以及MS Word允许您使用VBApipe理电子表格和文档。

录制macros时,打开MS Excel并执行所需的任务。 macros是开始学习VBA的好地方。 在后台,所有这些macros都以VBA格式存储。 您可以在您的各种日常任务中logging尽可能多的macros。 因此,通过MS Excel来完成任务将更有效率,您将了解更多关于macros和VBA的知识。 你将很快学会修改这个macros以获得更好的结果。