第二课工作簿的表示方法Option Explicit'-------------------------------------------------------------------------- 'VBA中,经常要在不同工作簿之间转换,工作簿的表示方法很重要,我们来看看'工作簿有几种表示方法'-------------------------------------------------------------------------- Sub 工作簿名称表示法()MsgBox Workbooks("2-1.工作簿的表示方法").Parent '返回工作簿对象的父对象。
End SubSub 工作簿引索号表示法()MsgBox Workbooks(2).Name '返回工作簿的名称(第二个工作簿)End SubSub 窗口表示法()MsgBox Windows.Count '返回当前excel工作簿打开的个数msgbox Windows(1) '返回第几个工作簿的名称End Sub(注意:索引号表示法与窗口表示法展示的工作簿顺序是相反的)Sub 工作簿实例workbooks法()Dim iFor i = 1 To Workbooks.CountCells(i, 1) = Workbooks(i).NameNextEnd SubSub 工作簿实例windows方法()Dim iFor i = 1 To Windows.CountCells(i, 2) = Windows(i)NextEnd Sub第三课当前工作簿与活动工作簿Option Explicit'thisworkbook当前工作簿,代码所在工作簿'activeworkbook活动工作簿,被激活的工作簿Sub 当前与活动工作簿区别实例()MsgBox & "---" & End SubSub 运用()MsgBox ThisWorkbook.Path & Chr(10) & ThisWorkbook.FullNameEnd Sub(解释:Path路径,FullName全名,Chris()换行符)Sub 验证当前工作簿是否已打开()Dim wk As Workbook, aFor Each wk In Workbooksa = If = "学习VBA.xlsm" Thenwk.Activate(解释:激活)MsgBox "已激活工作簿" & Exit SubEnd IfNext wkMsgBox "没有发现工作簿:学习VBA.xlsm"End Sub'思考题:用workbooks.count和windows.count来做上面这道题?第四课工作簿基础操作'workbooks由当前所有在内存中打开的workbook对象组成'向workbooks添加workbook对象'1.新建工作簿Sub 新建工作簿()Dim wkb As Workbook '声明wkb为工作簿Set wkb = Workbooks.Add '新建工作秒簿(注意:对象赋值需要加set)wkb.SaveAs "c:\123.xls" '保存为工作簿End Sub'2.打开工作簿Sub 打开工作簿()Dim wkb As WorkbookSet wkb = Workbooks.Open("c:\123.xls")End Sub'3.关闭工作簿Sub 关闭()Workbooks("123").Close True(注意:TRUR是保存内容)End Sub'3.文件复制与删除Sub 文件复制与删除()FileCopy "c:\123.txt", "c:\321.txt" '对所有文件类型都起作用Kill "c:\321.txt"End Sub第五课工作簿实例应用Sub 文件是否存在()a = Dir("c:\123.xls")(解释:Dir函数,取出目录文件)If a = "" ThenMsgBox "不存在"ElseMsgBox "存在"End IfEnd SubSub 打开指定目录下的文件()Dim a$, n!, wbs As Workbooka = Dir("c:\*.txt")Workbooks.Open "c:\" & aDoa = DirIf a <> "" ThenWorkbooks.Open "c:\" & aElseExit SubEnd IfLoopEnd Sub第六课工作表的表示方法'在workbook对象中,有一个SHEETS集合,其成员是worksheet对象或chart对象。
'worksheets仅指的是工作表,而sheets包含图表,工作表,宏表等等'VBA中,经常在工作表之间转换或者对不同工作表中的单元格区域进行操作. '通常有下面几种方法:Sub 直接使用工作表名称法()MsgBox Worksheets("我的工作表").NameMsgBox Sheets("我的图表").NameEnd SubSub 索引号表示法()MsgBox Worksheets(1).NameEnd SubSub 工作表代码索引号表示法()MsgBox Sheets(1).NameEnd SubSub 直接取工作代码法()MsgBox End SubSub 活动工作表()MsgBox End Sub'注意:当工作簿包括工作表、宏表、图表等时,' 使用索引号引用工作表如Sheets(1)与' WorkSheets(1)引用的可能不是同一个表。
Sub worksheetss()MsgBox Worksheets(1).NameMsgBox Sheets(1).NameEnd SubSub sheetss()For i = 1 To Sheets.CountMsgBox Sheets(i).NameNextEnd Sub第七课工作表集合应用Sub 遍历sheets下的所有对象()For Each shs In Sheetsk = k + 1Cells(k, 1) = NextEnd SubSub 遍历worksheets下的所能对象()For Each shs In Worksheetsk = k + 1Cells(k, 2) = NextEnd SubSub 工作表存在与否()Dim sn$For Each sht In Sheetssn = If sn = "我的工作表" ThenMsgBox "存在"Exit SubEnd IfNextMsgBox "不存在"End SubSub 工作表存在与否1()Dim sn$For i = 1 To Sheets.Counta = Sheets(i).NameIf Sheets(i).Name = "我的工作表" ThenMsgBox "存在"Exit SubEnd IfNextMsgBox "不存在"End Sub第八课工作表增加与删除' Sheets.Add 方法' 表达式.Add(Before, After, Count, Type)' XlSheetType 常量之一:' xlWorksheet 工作表' xlChart 图表' xlExcel4MacroSheet 宏表' xlExcel4IntlMacroSheet 对话框' 默认值为xlWorksheet。
'------------------------------------------------------------- Sub 新建sheets()'Sheets.Add'Sheets.Add Sheets("abc")'Sheets.Add , Sheets("abc")'Sheets.Add after:=Sheets("abc")'Sheets.Add Count:=2'Sheets.Add , , 2Sheets.Add , , , xlChartEnd SubSub 删除工作表()Sheet10.DeleteEnd SubOption ExplicitSub 宏4()'' 宏4 宏'Sheets("Sheet8").SelectActiveWindow.SelectedSheets.DeleteEnd Sub第九课工作表增加删除实例'如果想批量新建工作表,可以结果循环来制作Sub 新建1到12月份的工作表()Dim j%For j = 12 To 1 Step -1 = j & "月"NextEnd Sub'删除工作表Sub 删除sheet()On Error Resume NextApplication.DisplayAlerts = False(解释:删除的时候都有警告提示,此时循环关闭警告)Dim i%For i = 1 To 12Sheets(i & "月").DeleteNextApplication.DisplayAlerts = True(解释:删除的时候都有警告提示,此时循环打开警告)End Sub第十课工作表移动与复制'表达式.Move(Before, After)'表达式.copy(Before, After)Sub 移动()Sheet1.Move , Sheet3Sheet1.Move after:=Sheet3End SubSub 复制()Sheet1.Copy Sheets(Sheets.Count)End SubSub 实例()Dim i%, sth As WorksheetFor i = 1 To 12Set sth = Sheets.Addsth.Move after:=Sheets(Sheets.Count) = i & "月"NextEnd Sub第十一课工作表选择与激活Option Explicit'-------------------------------'Worksheet.Select 方法'选择对象'Worksheet.Activate 方法'使当前工作表成为活动工作表'工作表的选择select与activate'-----------------------------------Sub 工作表选择()Sheet3.Select '不支持隐藏选取Sheet3.Activate '支持End SubSub 快速选择所有工作表()Worksheets.SelectSheets.SelectEnd SubSub 自定义选择()Worksheets(Array(1, 3, 5)).Select(解释:函数Array为数组函数)End Sub第十二课工作簿综合运用(拆分工作簿).Sub 拆分到工作簿()Dim wk As Workbook, ss$, k%Application.DisplayAlerts = FalseFor Each sht In Workbooks("2-11.工作簿综合运用(拆分工作簿)").Sheets Set wk = Workbooks.Addk = k + 1Workbooks(1).Sheets(k).Copy Workbooks(2).Sheets(1)ss = ThisWorkbook.Path & "\" & & ".xlsx"wk.SaveAs sswk.CloseNextApplication.DisplayAlerts = TrueMsgBox "拆分工作簿完成!"End Sub。