logo资料库

金蝶二次开发平台VBA参考手册.pdf

第1页 / 共135页
第2页 / 共135页
第3页 / 共135页
第4页 / 共135页
第5页 / 共135页
第6页 / 共135页
第7页 / 共135页
第8页 / 共135页
资料共135页,剩余部分请下载后查看
Kingdee 二次开发平台 二次开发平台 VBA 参考参考参考参考 二次开发平台 二次开发平台 目录目录目录目录 二次开发平台的对象 ...................................................... 二次开发平台的对象................................ ...................... 2222 二次开发平台的对象 ...................... ................................ 二次开发平台的对象 ................................ ...................... ............................. 2222 ............................................................. 编程的概念 ................................ 编程的概念 ............................. ................................ 编程的概念 编程的概念 ............................. ................................ 工作薄和工作表................................ 工作薄和工作表 ...................................................... ...................... 2222 工作薄和工作表 工作薄和工作表 ................................ ................................ ...................... ...................... ........................ 3333 单元格和区域 ........................................................ 单元格和区域................................ ........................ 单元格和区域 ................................ 单元格和区域 ........................ ................................ ......................................... 使用对象和对象事件进行编程 ................................ 使用对象和对象事件进行编程 ......... 11111111 ................................ 使用对象和对象事件进行编程 使用对象和对象事件进行编程 ......... ................................ ......... .............................................................. 对象列表 ................................ 对象列表 .............................. 12121212 .............................. ................................ 对象列表对象列表 ................................ .............................. ....................................................... Application Application ................................ ....................... 12121212 Application ....................... ................................ Application ................................ ....................... Dialog ............................................................ Dialog ................................ ............................ 13131313 ............................ ............................ ................................ Dialog Dialog ................................ Dialogs Dialogs ................................ ........................................................... ........................... 14141414 Dialogs Dialogs ................................ ........................... ........................... ................................ Name ................................ Name .............................................................. .............................. 14141414 NameName .............................. .............................. ................................ ................................ Names ............................................................. Names ................................ ............................. 14141414 ............................. ................................ Names Names ............................. ................................ Range Range ................................ ............................................................. ............................. 15151515 ................................ Range Range ................................ ............................. ............................. Window ................................ Window ............................................................ ............................ 15151515 Window Window ................................ ............................ ............................ ................................ Windowssss ................................ Window ........................................................... ........................... 16161616 ........................... ........................... ................................ Window ................................ Window WorkBook WorkBook ................................ .......................................................... .......................... 17171717 .......................... .......................... ................................ WorkBook WorkBook ................................ WorkBooks ................................ WorkBooks ......................................................... ......................... 18181818 WorkBooks WorkBooks ................................ ......................... ......................... ................................ WorkSheet ......................................................... WorkSheet ................................ ......................... 18181818 ......................... ......................... ................................ WorkSheet ................................ WorkSheet WorkSheets WorkSheets ................................ ........................................................ ........................ 19191919 WorkSheets WorkSheets ................................ ........................ ........................ ................................ ................................................................ 属性属性属性属性 ................................ ........................................ 20202020 ................................ ................................ ................................ ................................ 方法方法方法方法 ................................ ................................................................ ........................................ 77777777 ................................ ................................ ................................ ................................ .................................... 117117117117 事件事件事件事件 ................................ ................................................................ ................................ ................................ ................................ ................................
二次开发平台的对象 二次开发平台的对象 二次开发平台的对象 二次开发平台的对象 编程的概念 编程的概念 编程的概念 编程的概念 工作薄和工作表 工作薄和工作表 工作薄和工作表 工作薄和工作表 新建工作簿 新建工作簿 新建工作簿 新建工作簿 若要在 Kingdee 二次开发平台 中创建新的工作簿,请使用 Add 方法。下述过程创建了新 的工作簿。Kingdee 二次开发平台 自动将该工作簿命名为“报表 N”,其中“N”是下一个可用 的数字。新工作簿将成为活动工作簿。 Sub AddOne() Workbooks.Add End Sub 创建新工作簿更好的方法是将其分配给一个对象变量。下例中,由 Add 方法返回的 Workbook 对象分配给了对象变量 newBook。然后,又设置了 newBook 的若干属性。使用 对象变量可以很容易地控制新工作簿。 Sub AddNew() Set NewBook = Workbooks.Add With NewBook .Title = "All Sales" .SaveAs Filename:="销售报表" End With End Sub 打开工作簿 打开工作簿 打开工作簿 打开工作簿 用 Open 方法打开一个工作簿时,该工作簿将成为 Workbooks 集合的成员。下述过程打开 一个已经保存的报表 Sub OpenUp() Workbooks.Open_ End Sub 按索引编号引用工作表 按索引编号引用工作表 按索引编号引用工作表 按索引编号引用工作表 编号是分配给工作表的连续数字,基于其工作表标签在同一类型的工作表之间的位置(按从 Worksheets 属性激活活动工作簿上的第一张工作表。 左到右计数)。下述过程使用 Worksheets Worksheets Worksheets
Sub FirstOne() Worksheets(1).Active End Sub Sheets 属 如果要处理所有类型的工作表(工作表、图表、模块和对话框编辑表),可使用 Sheets Sheets Sheets 性。下述过程激活工作簿中的第四张工作表。 Sub FourthOne() Sheets(4).Active End Sub 注意注意注意注意 如果移动、添加或删除工作表,则编号顺序将会更改。 按名称引用工作表 按名称引用工作表 按名称引用工作表 按名称引用工作表 使用 Worksheets Worksheets 属性可通过名称来标识工作表。下述语句激活活动工作簿中的名称为 Worksheets Worksheets "Sheet1"的工作表。 Worksheets("Sheet1").Active Sheets 属性返回工作表;Sheets Sheets 集合包含了所有这些表。 可用 Sheets Sheets Sheets Sheets Sheets 单元格和区域 单元格和区域 单元格和区域 单元格和区域 如何引用单元格和区域 如何引用单元格和区域 如何引用单元格和区域 如何引用单元格和区域 使用 Visual Basic 的普通任务是指定单元格或单元格区域,然后对该单元格或单元格区域进 行一些操作,如输入公式或更改格式。通常用一条语句就能完成操作,该语句可标识单元格, 还可更改某个属性或应用某个方法。 在 Visual Basic 中,Range 对象既可表示单个单元格,也可表示单元格区域。下列主题说 明了标识和处理 Range 对象最常用的方法。 请选择: 请选择: 请选择: 请选择: 用 A1 样式记号引用单元格和单元格区域 用编号引用单元格 引用行和列 用快捷记号引用单元格 引用命名单元格区域 相对于其他单元格来引用单元格 用 Range 对象引用单元格 引用工作表上的所有单元格 引用多个单元格区域 用用用用 A1 样式记号引用单元格和单元格区域 样式记号引用单元格和单元格区域 样式记号引用单元格和单元格区域 样式记号引用单元格和单元格区域 可使用 Range Range 属性来引用 A1 引用样式中的单元格或单元格区域。下述子程序将单元格区 Range Range 域 A1:D5 的字体设置为加粗。
Sub FormatRange() Workbooks("Book1").Sheets("Sheet1").Range("A1:D5") _ .Font.Bold = True End Sub Range 属性的一些 A1 样式引用。 下表演示了使用 Range Range Range 含义 引用 Range("A1") 单元格 A1 Range("A1:B5") 从单元格 A1 到单元格 B5 的区域 Range("C5:D9,G9:H16") 多块选定区域 Range("A:A") A 列 Range("1:1") 第一行 Range("A:C") 从 A 列到 C 列的区域 Range("1:5") 从第一行到第五行的区域 Range("1:1,3:3,8:8") 第 1、3 和 8 行 Range("A:A,C:C,F:F") A 、C 和 F 列 用编号引用单元格 用编号引用单元格 用编号引用单元格 用编号引用单元格 通过使用行列编号,可用 Cells Cells 属性来引用单个单元格。该属性返回代表单个单元格的 Cells Cells Range Range 对象。下例中,Cells(6,1) 返回 Sheet1 上的单元格 A6,然后将 Value Value 属性设置 Value Range Range Value 为 10。 Sub EnterValue() Worksheets("Sheet1").Cells(6, 1).Value = 10 End Sub 因为可用变量替代编号,所以 Cells 属性非常适合于在单元格区域中循环,如下例所示。 Sub CycleThrough() Dim Counter As Integer For Counter = 1 To 20 Worksheets("Sheet1").Cells(Counter, 3).Value = Counter Next Counter End Sub 注意注意注意注意 如果要同时更改某一单元格区域中所有单元格的属性或对其应用方法,可使用 Range 属性。有关详细信息,请参阅用 A1 样式记号引用单元格。 Range Range Range 引用行和列 引用行和列 引用行和列 引用行和列 Rows 属性或 Columns 可用 Rows Columns 属性来处理整行或整列。这两个属性返回代表单元格区域的 Columns RowsRows Columns Range Range 对象。下例中,用 Rows(1) 返回 Sheet1 上的第一行,然后将单元格区域的 Font Font 对 FontFont Range Range 象的 Bold Bold 属性设置为 True True。 True Bold Bold True Sub RowBold() Worksheets("Sheet1").Rows(1).Font.Bold = True End Sub
Rows 和 CCCColumns 下表举例说明了使用 Rows olumns 属性的一些行和列的引用。 olumns Rows Rows olumns 引用 Rows(1) Rows Columns(1) Columns("A") Columns 含义 第一行 工作表上所有的行 第一列 第一列 工作表上所有的列 若要同时处理若干行或列,请创建一个对象变量并使用 Union Union 方法,将对 Rows Rows 属性或 RowsRows Union Union Columns Columns 属性的多个调用组合起来。下例将活动工作簿中第一张工作表上的第一行、第三行 Columns Columns 和第五行的字体设置为加粗。 Sub SeveralRows() Worksheets("Sheet1").Activate Dim myUnion As Range Set myUnion = Union(Rows(1), Rows(3), Rows(5)) myUnion.Font.Bold = True End Sub 用快捷记号引用单元格 用快捷记号引用单元格 用快捷记号引用单元格 用快捷记号引用单元格 可用方括号将 A1 引用样式或命名区域括起来,作为 Range 属性的快捷方式。这样就不必 键入单词“Range”或使用引号,如下例所示。 Sub ClearRange() Worksheets("Sheet1").[A1:B5].ClearContents End Sub Sub SetValue() [MyRange].Value = 30 End Sub 引用命名区域 引用命名区域 引用命名区域 引用命名区域 用名称比用 A1 样式记号更容易标识单元格区域。若要命名选定的单元格区域,请单击编 辑栏左端的名称框,键入名称,再按 Enter。 引用命名区域 引用命名区域 引用命名区域 引用命名区域 下例引用了名为“MyBook.xls”的工作簿中的名为“MyRange”的单元格区域。 Sub FormatRange() Range("MyBook.xls!MyRange").Font.Italic = True End Sub 下例引用名为“Report.xls”的工作簿中的特定工作表单元格区域“Sheet1!Sales”。
Sub FormatSales() Range("[Report.xls]Sheet1!Sales").BorderAround Weight:=xlthin End Sub 若要选定命名区域,请用 GoTo 方法,该方法将激活工作簿和工作表,然后选定该区域。 Sub ClearRange() Application.Goto Reference:="MyBook.xls!MyRange" Selection.ClearContents End Sub 下例显示对于活动工作簿将如何编写相同的过程。 Sub ClearRange() Application.Goto Reference:="MyRange" Selection.ClearContents End Sub 在命名区域中的单元格上循环 在命名区域中的单元格上循环 在命名区域中的单元格上循环 在命名区域中的单元格上循环 下例用 For Each...Next 循环语句在命名区域中的每一个单元格上循环。如果该区域中的任 一单元格的值超过 limit 的值,就将该单元格的颜色更改为黄色。 Sub ApplyColor() Const Limit As Integer = 25 For Each c In Range("MyRange") If c.Value > Limit Then c.Interior.ColorIndex = 27 End If Next c End Sub 相对于其他单元格来引用单元格 相对于其他单元格来引用单元格 相对于其他单元格来引用单元格 相对于其他单元格来引用单元格 处理相对于另一个单元格的某一单元格的常用方法是使用 Offset Offset 属性。下例中,将位于活 Offset Offset 动工作表上活动单元格下一行和右边三列的单元格的内容设置为双下划线格式。 Sub Underline() ActiveCell.Offset(1, 3).Font.Underline = xlDouble End Sub 注意注意注意注意 可录制使用 Offset Offset 属性(而不是绝对引用)的宏。在“工具”菜单上,指向“宏”, Offset Offset 再单击“录制新宏”,然后单击“确定”,再单击录制宏工具栏上的“相对引用”按钮。 Cells 属性一起使用。下例以 5 为步长, 若要在单元格区域中循环,请在循环中将变量与 Cells Cells Cells 用 5 到 100 之间的值填充第三列的前 20 个单元格。变量 counter 用作 Cells Cells 属性的行 Cells Cells 号。 Sub CycleThrough() Dim counter As Integer For counter = 1 To 20 Worksheets("Sheet1").Cells(counter, 3).Value = counter * 5
Next counter End Sub 用用用用 Range 对象引用单元格 对象引用单元格 对象引用单元格 对象引用单元格 如果将对象变量设置为 Range Range 对象,即可用变量名方便地操作单元格区域。 Range Range 下述过程创建了对象变量 myRange,然后将活动工作簿中 Sheet1 上的单元格区域 A1:D5 赋予该变量。随后的语句用该变量代替该区域对象,以修改该区域的属性。 Sub Random() Dim myRange As Range Set myRange = Worksheets("Sheet1").Range("A1:D5") myRange.Formula = "=RAND()" myRange.Font.Bold = True End Sub 引用工作表上的所有单元格 引用工作表上的所有单元格 引用工作表上的所有单元格 引用工作表上的所有单元格 如果对工作表应用 Cells Cells 属性时不指定编号,该属性将返回代表工作表上所有单元格的 Cells Cells Range Range 对象。下述 SubSubSubSub 过程清除活动工作簿中 Sheet1 上的所有单元格的内容。 Range Range Sub ClearSheet() Worksheets("Sheet1").Cells.ClearContents End Sub 引用多个单元格区域 引用多个单元格区域 引用多个单元格区域 引用多个单元格区域 使用适当的方法可以很容易地同时引用多个单元格区域。可用 Range Range 和 Union Union 方法引用任 Union Range Range Union 意组合的单元格区域;用 Areas Areas 属性可引用工作表上选定的一组单元格区域。 Areas Areas 使用使用使用使用 Range Range 属性属性属性属性 Range Range 通过在两个或多个引用之间放置逗号,可使用 Range Range 属性来引用多个单元格区域。下例清 Range Range 除了 Sheet1 上三个单元格区域的内容。 Sub ClearRanges() Worksheets("Sheet1").Range("C5:D9,G9:H16,B14:D18"). _ ClearContents End Sub 命名区域使得用 Range Range 属性处理多个单元格区域更为容易。下例可在三个命名区域处于同 Range Range 一工作表时运行。 Sub ClearNamed() Range("MyRange, YourRange, HisRange").ClearContents
End Sub 使用使用使用使用 Union Union 方法方法方法方法 Union Union Union 方 法 可 将 多 个 单 元 格 区 域 组 合 到 一 个 Range 用 Union Range 对 象 中 。 下 例 创 建 了 名 为 Range Union Union Range myMultipleRange 的 Range Range 对象,并将其定义为单元格区域 A1:B2 和 C3:D4 的组合,然 Range Range 后将该组合区域的字体设置为加粗。 Sub MultipleRange() Dim r1, r2, myMultipleRange As Range Set r1 = Sheets("Sheet1").Range("A1:B2") Set r2 = Sheets("Sheet1").Range("C3:D4") Set myMultipleRange = Union(r1, r2) myMultipleRange.Font.Bold = True End Sub 使用使用使用使用 Areas Areas 属性属性属性属性 Areas Areas 可用 Areas Areas 属性引用选定的单元格区域或多块选定区域中的区域集合。下述过程计算选定 Areas Areas 区域中的块数目,如果有多个块,就显示一则警告消息。 Sub FindMultiple() If Selection.Areas.Count > 1 Then MsgBox "Cannot do this to a multiple selection." End If End Sub 在单元格区域中循环 在单元格区域中循环 在单元格区域中循环 在单元格区域中循环 使用 Visual Basic 时,经常需要对某一单元格区域内的每个单元格运行同一段语句。为达 到这一目的,可组合循环语句和一个或多个方法来标识每个单元格,一次针对一个单元格, 并执行该操作。 在单元格区域中循环的一种方法是将 For...Next For...Next 循环语句与 Cells Cells 属性配合使用。使用 Cells For...Next For...Next Cells Cells Cells 属性时,可用循环计数器(或其他变量或表达式)来替代单元格索引编号。下例中, Cells Cells 变量 counter 代替了行号。此过程将在单元格区域 C1:C20 中循环,将所有绝对值小于 0.01 的数字都设置为 0(零)。 Sub RoundToZero1() For Counter = 1 To 20 Set curCell = Worksheets("Sheet1").Cells(Counter, 3) If Abs(curCell.Value) < 0.01 Then curCell.Value = 0 Next Counter End Sub 在单元格区域中循环的另一种简便方法是使用 For Each...Next For Each...Next 循环语句和由 Range Range 属 Range For Each...Next For Each...Next Range 性指定的单元格集合。在每一次循环过程中,Visual Basic 都为下一个单元格自动设置一 个对象变量。下述过程在单元格区域 A1:D10 中循环,将所有绝对值小于 0.01 的数字都设 置为 0(零)。
分享到:
收藏