什么是学习VBA的好项目?

我最近才意识到自己在Excel中有多糟糕,但我仍然是我公司最棒的人,所以我没有人可以学习,而且我也很难通过阅读某些东西来学习。 当我跳进来开始使用我想学的东西的时候,我学得好多了(还有更快)。

那么有没有人可以推荐一系列简短的现实世界的项目供我试用? 我不知道用VBA在Excel中通常会做什么样的事情,但是我知道我可以学习,如果现在做好准备的话,我可以为他们做好准备。

在我看来,最好的三种方法是:

  1. 在VBA中模拟你已经在使用的函数(你可以使用Application.WorksheetFunction...来查看可用的东西。任何/所有的Excel编程的关键是理解Range对象,所以这应该是你首先要做的。
  2. 使用macroslogging器检查您的键盘/鼠标的步骤,并改变事情,看看它是如何影响的东西。 这可能很有趣和/或乏味 – 但最终可能是学习Excel VBA最好的方法。
  3. 得到一些正式的培训 – 不知道你是否注意到了,但在任何普通的书店里,Excel VBA的书籍往往比其他任何技术都要多。 或者你可以赚一些更大的钱,并进行video/幻灯片式的培训,比如ExcelExcel的Excel 2007 VBA培训 (免责声明:我跟Excel先生根本没有联系

奖金小费! :如果你几乎知道任何与财务(会计,股票经纪等)交易的人,你可以问他们一些提示。 很可能他们要么知道Excel VBA,要么知道是谁。

大多数程序是这样的:用户input信息,存储信息,计算,生成报告。 这里有一些你可以做的项目

 Contact List Todo List Checkbook Home Inventory Tracker Investments Tracker 

现在有趣的部分

input:首先使用电子表格,然后是用户表单,然后是电子邮件,然后是文本文件,然后是XML文件,然后是Web表单,然后是连接到串行端口的条形码扫描器。 反正你懂这个意思。

存储:将数据存储在工作表上,然后存储在Access数据库,然后是SQLite,然后是SQLServer,然后是XML,然后是PHP网页后面的MySQL数据库。

计算:从一个自包含的工作簿开始。 然后将代码分成一个加载项。 然后把一些代码放到XLL中。 然后把一些代码放入.Net。

输出:工作表,PDF,网页

一旦你完成了所有的组合,你会很好。 其他两点:立即开始使用自定义类模块 – 它将使从电子表格存储到访问存储方式变得更容易。 另一个提示是开始一个博客,以便其他人可以从你的旅程中学习。

我想说的是用VBA做好,首先应该掌握Excel的所有内置工具,否则你会花时间重新发明轮子。

有数以千计的优秀(或不是很好)的资源,但我真的很喜欢这本书专业的Excel开发:使用Microsoft®Excel和VBA®开发应用程序的权威指南作者:Stephen Bullen; Rob Bovey; 约翰·格林
你怎么知道你的电子表格是正确的? 您可以在此页面上免费下载。

当然…macros录像机是你的朋友,以及F1键:-)

我曾经在Excel VBA中写过的第一个培训课程是一个彩色挂历的发生器。 也许你需要一些类似的东西。

不要寻找任意的Excel VBA任务,而是专门研究贵公司其他人需要什么。

看看过去几个月你在Excel中完成的任务,看看你是否可以使用VBA自动化他们。

在VBA中编写一本好书,并通过示例练习。

我build议采取这种方法来学习用于Microsoft Excel的Microsoft VBA:(1)转到书店,查看“计算机”部分,在Microsoft Excel上查找关注VBA组件以及如何自动化任务的书籍; (2)确定您在电子表格中执行的重复性最强的任务,并确定是否可以录制可以播放的macros; 然后(3)用macros进行实验。

对我来说,Microsoft Excel中最令人讨厌的任务之一就是不得不为每个新的工作表设置页面设​​置; 因此在一个客户站点上,我创build了一个为每个打印页面设置页面设​​置,边距,页眉/页脚和重复行的macros。 这个macros得到了回报,因为我不断创buildMicrosoft Excel工作簿,这些工作簿包含供其他人审阅和评论的数据,而且我的团队在来参加会议之前打印它们。

你也可以问你工作场所的人有没有重复的任务,实际上,你可能会对即将到来的项目有积极的态度。 因为他们习惯于手工操作,所以他们不会为时间压力,而且如果你创造一个更简单的解决scheme,他们会更快乐。 它可能是格式化一个长电子表格,格式化许多,不得不电子邮件,打印和保存多个电子表格。

此外,在迄今为止所做的项目中,保留代码的副本,挑战自己修改代码以做更多的事情。 例如,如果您有从选定行数复制数据并将所有数据粘贴到一个连续列的代码,请修改macros以允许用户:1.select要复制的范围,2.select数字将其粘贴到粘贴位置; 3.select每列中有多less个单元格,然后再移动到下一个; 4.根据所选数据均匀分布列;或者5.每次定义一个新列在数据中findsearch关键字。 6.计算数据总数:macros和每列。

然后创build一个不错的用户表单,将其全部放入,并具有适当的错误和事件处理。 然后让他们testing一下,并采取build议。 所有这一切都可以帮助您的编码知识。 还有一件事是,你问你仔细find的代码。 问为什么每个function都在那里,然后search电脑在每一个过程中所经历的过程。 这有助于您的代码高效,快速。 例如使用数组来利用单元数据,而不是单独循环单元。