2022年ExcelVBA程序的编写 .pdf
《2022年ExcelVBA程序的编写 .pdf》由会员分享,可在线阅读,更多相关《2022年ExcelVBA程序的编写 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Excel VBA程序的编写摘要:本文通过代码演示,介绍如何从Active Directory中检索信息并将信息显示在带格式的Excel 工作表中。(注:本文摘自Microsoft Corporation 技术人员 Greg Stemp的文章,稍作修改。在文章中,估且先不要管 Active Directory,可看看文章所介绍的有关Excel 程序编写的相关知识,肯定会有所帮助的。所有示例及图示均在工作簿Excel 代码编写示例 .xls 中)使用Excel :快速回顾我们可以仅仅使用下面两行代码就能创建Excel 工作簿:* Sub BuildWorkbook() Dim objExcel
2、as Application Set objExcel = CreateObject(Excel.Application) objExcel.Workbooks.Add End Sub * 在默认情况下, 您在任何时候创建的Excel 工作簿都运行在不可见的窗口之中。要实际地看一看所创建的Excel 工作簿,需要将Visible 属性设置为TRUE ,如下所示:* Sub BuildWorkbook() Dim objExcel as Application Set objExcel = CreateObject(Excel.Application) objExcel.Workbooks.Ad
3、d objExcel.Visible = True End Sub * 上面的三行代码将在屏幕上显示一个空白的电子表格。将数据添加到电子表格中当电子表格关闭时,您可以很容易地将数据添加到电子表格中。首先您简单地引用一个单元格,然后相应地设置值。例如,假设我们想要将文本“My Workbook ” 输入第一行第一列。试一试下面的代码,看看会发生什么:* Sub addData() Dim objExcel as Application Set objExcel = CreateObject(Excel.Application) objExcel.Visible = True objExcel.W
4、orkbooks.Add objExcel.Cells(1, 1).Value = My Workbook End Sub * 当您运行这个代码后,会看到类似如下面图1 所示的输出:图 1. 将数据写入Excel 电子表格哈哈,很酷吧!如果您想要添加其他的数据,我们只需要多引用几个单元格并且设置合适的值就可以了。例如,下面的脚本将四种动物的名称添加到我们的电子表格中:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - * Sub
5、addDatas() Dim objExcel As Application Set objExcel = CreateObject(Excel.Application) objExcel.Visible = True objExcel.Workbooks.Add objExcel.Cells(1, 1).Value = 小猫 objExcel.Cells(1, 2).Value = 小狗 objExcel.Cells(1, 3).Value = 小兔 objExcel.Cells(1, 4).Value = 小猪 End Sub * 当您运行这段代码后,会看到类似如下图2 所示的输出:图 2
6、. 将数据写入Excel 电子表格中的多个单元格现在,真的非常酷 !嗯,不错,您真行!但这还不够,是吗?可以将数据添加到电子表格是一件了不起的事哦,不过,让我们考虑一下这个问题。我们为什么愿意在Excel 中显示数据而不愿意在命令窗口中显示数据或将其保存到文本文件中呢?我们之所以愿意这么做,最可能的原因并不是选择这两种方法会让您花大量的精力去安排数据的格式。至少我们可以说将数据输出到命令窗口或保存到文本文件会缺少某种美感。这就是我们愿意使用Excel 的原因; Excel 使您能够创建格式漂亮、易于阅读的输出。但是在这里我们还无法保证有格式漂亮的输出;毕竟,您可能连“ 小猫 ” 或“ 小狗 ”
7、 这样的名字都读不到。因此,在进一步讨论之前,让我们先来谈一谈Excel 中的格式设置。Excel 中的格式设置如果您曾经使用过Excel ,您就知道在Excel 中设置格式是多么的容易:您只需选择一两个单元格,然后就可以应用某种格式了(更改字体大小、 更改单元格的背景颜色、将文本设置为黑体等等,想做什么都可以)。在程序化地使用Excel 时,您也可以做同样的事情。例如,仅仅通过使用一些设置格式的命令,您就可以设置活动单元格 (即您正在输入的单元格)的格式。下面的代码将单词“My Workbook ” 输入到第 1 行第 1 列的单元格中,然后进行如下操作:1、将文本设为黑体(通过将 Bold
8、 属性设置为TRUE) 。2、将字体大小设为24( 通过将 Size 属性设置为24) 。3、将字体颜色设为红色(通过将 ColorIndex 属性设置为3)。* Sub Setformat() Dim objExcel As Application Set objExcel = CreateObject(Excel.Application) objExcel.Visible = True objExcel.Workbooks.Add objExcel.Cells(1, 1).Value = My Workbook objExcel.Cells(1, 1).Font.Bold = TRUE o
9、bjExcel.Cells(1, 1).Font.Size = 24 objExcel.Cells(1, 1).Font.ColorIndex = 3 End Sub * 当您运行这个代码时,您会看到如下图3 所示的输出:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 图 3. 将带格式的数据写入Excel 电子表格屏住呼吸,怎么样?最好的是除了ColorIndex 属性略显复杂之外(等一会儿我们将讨论它),这段代码是非常简单
10、的。如果想要将文本设为斜体该怎么办?可以使用下面这行代码:* objExcel.Cells(1, 1).Font.Italic = TRUE * 如果想要使用Times New Roman 字体该怎么办?可以使用下面这行代码:* objExcel.Cells(1, 1).Font.Name = Times New Roman * 注:遗憾的是,我们没有时间全面介绍您在处理时会使用的许多格式设置选项。不过,请您关注,我将在以后摘录一些很好的关于Excel 对象模型的信息。好的,但ColorIndex 属性又怎么样呢?虽然在Excel 中有两种不同的方法更改颜色,但ColorIndex 可能是最简
11、单的(它还可以告诉您一些关于其他方法的内容)。 在 Excel 中, 有 56 种内置的颜色 (索引号1 56)可供您使用;您必须做的事情就是将ColorIndex 属性的值设置为期望的索引号。唯一的问题就是:您如何知道索引号3 是红色,而索引号4 是您真正感兴趣的绿色阴影呢?下面这些简单的程序代码会向您显示所有的56 个索引号都代表什么颜色:* Sub TestColor() Dim objExcel As Application Set objExcel = CreateObject(Excel.Application) objExcel.Visible = True objExcel.W
12、orkbooks.Add Dim i As Integer For i = 1 to 56 objExcel.Cells(i, 1).Value = i objExcel.Cells(i, 1).Interior.ColorIndex = i Next End Sub * 当您运行这段代码后,您会看到如下图4 所示的输出:图 4. Excel ColorIndex 值您可以看出,如果您想要将字体颜色设置为清绿色,则只需将ColorIndex 设置为8 就行了。顺便提一句,如果您仔细地看过了前面的代码,您现在就会知道如何设置单元格的背景颜色:只需使用Interior.ColorIndex 属性就
13、行了。例如,要将单元格的颜色设置为红色,可以使用下面的代码:* objExcel.Cells(1, 1).Interior.ColorIndex = 3 * 在继续讨论之前,先来为我们的格式设置代码做另外一件事。您可能会想得起来,我们的测试代码向我们显示以下图 5 所示的输出:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 图 5. 将带格式的数据写入Excel 电子表格问题在哪里?嗯,首先单词“My Workbook ” 并
14、没有全部显示在第一列中。那好,如果我们在第一行第二列中输入一些内容会怎么样呢?我们会看到类似于图6 这样的输出:图 6. Excel 电子表格中大小设置不正确的列没有正确地得到我们所希望的输出类型。显然,我们需要做的是将第一列加宽一点。但怎么做呢?使用范围到此为止,我们还只是设置了活动单元的格式,为其更改字体大小、单元格颜色等等。然而,有时您需要使用多个单元格。或许您想要更改特定行中所有单元格的字体大小。或许您想要对您收集的所有数据进行排序。或许,和下面的例子一样,您想要重新设置整个列的大小。如果这样,您就需要使用范围,即一组指定的单元格。虽然有几种不同的方法指示范围中包含的单元格,但是它们有
15、一点是共同的:它们都需要您创建Range 对象的实例,然后指定哪些单元格是该范围的一部分。例如,下面是一些创建范围的常用方法。要创建包含单个单元格的范围:* Set objRange2 = objExcel.Range(A1) * 要创建包含整个列的范围:* Set objRange = objExcel.ActiveCell.EntireColumn * 正如您所期望的,有相似的命令来创建包含整个行的范围:* Set objRange = objExcel.ActiveCell.EntireRow * 如果您想要选择的行或列不同于带有活动单元格的行或列怎么办?没问题。使用所需的行或列中的一个
16、单元格来创建范围,然后使用Activate 方法来使其成为活动单元格。此时,设置代表整个行或列的范围。例如,下面这段代码使单元格E5 成为活动单元格,然后通过选择整个行来创建包含第5 行中的所有单元格的范围:* Set objRange = objExcel.Range(E5) objRange.Activate Set objRange = objExcel.ActiveCell.EntireRow * 要创建包含一组单元格的范围:* Set objRange = objExcel.Range(A1:C10) * 注意,您在这里做的是指定起点(A1) 和终点(C10) 。Excel 会自动选
17、择这两个点之间的所有单元,并把它们放在范围之中。要创建包含所有数据的范围:* Set objCell = objExcel.Range(A1).SpecialCells(11) * 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 在这个例子中, 11 是表示包含数据的电子表格中最后的单元格的参数。这个命令所创建的范围从单元格A1 开始一直延伸到所有包含数据的单元格。为了进行演示,让我们再看一下前面的代码,看看我们是否能够使它变
18、得更漂亮一点。在这个经过修改的代码中,我们将把动物的名称放在单列(而不是单行)中,并且我们将给该列加上粗体标签(Name) 。然后,仅仅是为了使它变得更美观一些,我们将:1、更改带标签的单元格(1,1) 的背景颜色和字体颜色。2、创建包含我们正在使用的五个单元格的范围(A1:A5) 并更改字体大小。3、创建包含带有四个动物名称的单元(A2:A5) 的范围并更改背景颜色。4、选择列A 并使用Autofit 方法来重新设置列的大小,以便所有的文本都适合。代码如下:* Sub TestRange() Dim objExcel As Application Set objExcel = CreateO
19、bject(Excel.Application) objExcel.Visible = True objExcel.Workbooks.Add objExcel.Cells(1, 1).Value = Name objExcel.Cells(1, 1).Font.Bold = TRUE objExcel.Cells(1, 1).Interior.ColorIndex = 30 objExcel.Cells(1, 1).Font.ColorIndex = 2 objExcel.Cells(2, 1).Value = 小猫 objExcel.Cells(3, 1).Value = 小狗 objEx
20、cel.Cells(4, 1).Value = 小兔 objExcel.Cells(5, 1).Value = 小猪 Set objRange = objExcel.Range(A1,A5) objRange.Font.Size = 14 Dim objRange As Range Set objRange = objExcel.Range(A2,A5) objRange.Interior.ColorIndex = 36 Set objRange = objExcel.ActiveCell.EntireColumn objRange.AutoFit End Sub * 下面图 7 是最终的输出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年ExcelVBA程序的编写 2022 ExcelVBA 程序 编写
限制150内