需要Excel VBA的最佳简短示例

这是Joel的一个…

我正在寻找方法向Excel用户演示(没有编程经验)如何学习一些Excel VBA可以使他们的生活与Excel工作更容易一点。

首先想到的是使用复制电子表格的手动调整的示例,例如对所有数据的单击条件格式化。 例如:根据用户input的阈值,加上红色,橙色或绿色的所有数字,再加上一些其他派生数据,如当前的商业周。

我希望这样一个简短的VBA例子不应该太难掌握,以前从来没有写过一行代码的人,希望能够学习一些Excel VBA。

但是,在这个例子中,编写代码的时间并不比在Excel中手动应用条件格式快得多。 所以我想知道社区里是否有人有更好的例子来certificate使用Excel VBA的好处。

理想的例子会有以下特点:

  1. 显着节省时间(大T,其中T =手动程序的时间/代码的时间)。
  2. 非抽象的日常电子表格示例。
  3. 最终结果不能轻易实现。
  4. 使用简短的基本VBA代码即可实现。

请记住,目标受众正在开始编程。

如果可以的话,看着他们使用Excel半小时,你会发现最好的机会。 当他们打开一个电子表格时,自动调整所有列,将列A格式化为date,右alignment列J,删除第2行至第5行,并将打印方向更改为横向,然后find赢家。 让他们再次做,但macros录音机。 然后重播macros录制器。

通过与他们在现实生活中使用的东西一起工作,将会产生更多的影响。

第一次,你不必一天半小时就把它们保存起来。 保存他们30秒的苦差事,他们会开始考虑他们想要的所有事情。 根据我的经验,他们会很快过头。 他们很快就会希望Excel能够填写网页表单,导入信息并为他们提供咖啡。

用VBA创build你自己的“函数”,你可以像表单中的另一个函数一样使用它。

你可以做简单的Excel中不可能的事情,或者很难实现或重用。

一个例子:

在VBA中创build一个新模块,添加如下代码:

Public Function SizeOfFile(a As String) SizeOfFile = VBA.FileLen(a) End Function 

您现在可以在单元格中的公式中使用SizeOfFile。

如果单元格A1包含文件的名称,B1填充=SizeOfFile(A1)以获取大小。

您可以显示录制(和编辑)macros,重复您经常执行的步骤。

目标受众中的人是否是强大的用户?

如果是这样,那么如何使用外部引用来合并来自多个工作簿的数据? 我不确定外部引用是否是实现这一目标的最佳方式,我不确定这对于刚接触VBA的人来说是多么困难,但这就是我过去所做的。

例1

遵循命名约定有许多excel文件:

  c:\data1.xls c:\data2.xls c:\data3.xls 

我希望能够在一列inputID号,并有一个VBA来为我所有的其他列获取数据。 我select使用外部引用来做到这一点,因为这样我就不用担心打开和closures文件,并担心这些文件是否存在。

我想要的结果是这样的:

  id data hyperlink 1 extRefA1 c:\data1.xls 3 extRefA1 c:\data3.xls 500 extRefA1 c:\data500.xls 

我不需要VBA来创build超链接,但是我找不到一个简单的方法来创build没有VBA的外部引用。 我尝试使用INDIRECT,但参考工作簿必须打开间接工作。 所以,我用VBA来创build外部引用。

例2

这个例子与例子1类似,但是我必须结合不同的图表数据。

每个excel文件中的数据都在列中:

  XY 1 5 2 10 3 5 4 60 

我想要在行中组合的图表数据:

  1 2 3 4 data1 5 10 5 60 data3 30 60 4 2 data500 25 45 20 5 

所以我做了一个VBA,把公式数组包含一个TRANSPOSE中的外部参考

data1公式数组看起来像这样:

  =TRANSPOSE('c:\[data1.xls]Sheet1'!$B$2:$B$5) 

我不知道别人如何使用Excel和VBA,但这些对我来说是非常有用的。

弗朗西斯

我joinVBA后,首先尝试了一下VBA的步骤,并看到我的新团队每天早上花费30分钟的时间,汇总了大约1000个项目的报告,这些项目需要以不同的方式进行自动过滤以产生所需的计数。 用VBA打了几个小时就把这个任务按下了一个button,大约一秒钟。

任何像这样的循环都将满足您节省大量时间的首要标准。 也许是一个涉及从200个电话号码或地址列表中提取区号或门牌号码的任务?

这个问题是一个很棒的MSDN链接。 http://msdn.microsoft.com/en-us/library/aa203714(office.11​​).aspx

拥有一切你需要一个简短的preso。