免费预览已结束,剩余45页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Excel-常用宏技巧1、设置密码窗口12、本示例为设置提示窗口23、本示例为设置工作表保护密码24、本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容25、每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口26、本示例显示活动工作表的名称27、本示例保存当前活动工作簿的副本28、下述过程激活工作簿中的第四张工作表39、下述过程激活工作簿中的第1张工作表310、本示例通过将 Saved 属性设为 True 来关闭包含本段代码的工作簿,并放弃对该工作簿的任何更改311、本示例对自动重新计算功能进行设置,使 Microsoft Excel 不对第一张工作表自动进行重新计算312、下述过程打开 C 盘上名为 MyFolder 的文件夹中的 MyBook.xls 工作簿313、本示例显示活动工作簿中工作表 sheet1 上单元格 A1 中的值314、本示例显示活动工作簿中每个工作表的名称315、本示例向活动工作簿添加新工作表 , 并设置该工作表的名称416、本示例将新建的工作表移到工作簿的末尾417、本示例将新建工作表移到工作簿的末尾418、本示例新建一张工作表,然后在第一列中列出活动工作簿中的所有工作表的名称419、本示例将第十行移到窗口的最上面?420、当计算工作簿中的任何工作表时,本示例对第一张工作表的 A1:A100 区域进行排序521、本示例显示工作表 Sheet1 的打印预览522、本示例保存当前活动工作簿?523、本示例保存所有打开的工作簿,然后关闭 Microsoft Excel524、下例在活动工作簿的第一张工作表前面添加两张新的工作表525、本示例设置 15 秒后运行 my_Procedure 过程,从现在开始计时526、本示例设置 my_Procedure 在下午 5 点开始运行627、本示例撤消前一个示例对 OnTime 的设置628、每当工作表重新计算时,本示例就调整 A 列到 F 列的宽度629、本示例使活动工作簿中的计算仅使用显示的数字精度630、本示例将工作表 Sheet1 上的 A1:G37 区域剪下,并放入剪贴板631、Calculate 方法632、本示例更新当前活动工作簿中的所有链接733、本示例设置第一张工作表的滚动区域71、 设置密码窗口If Application.InputBox(请输入密码:) = 1234 Then A1 = 1 密码正确时执行 Else: MsgBox 密码错误,即将退出! 此行与第2行共同设置密码 End If 2、 本示例为设置提示窗口X = MsgBox(是否真的要结帐?, vbYesNo) If X = vbYes Then Close 3、 本示例为设置工作表保护密码ActiveSheet.Protect Password:=641112 保护工作表并设置密码 ActiveSheet.Unprotect Password:=641112 撤消工作表保护并取消密码 4、 本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容For Each w In Workbooks If w.Name ThisWorkbook.Name Then w.Close SaveChanges:=True End If Next w 5、 每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口 Application.WindowState = xlMaximized 6、 本示例显示活动工作表的名称MsgBox The name of the active sheet is & ActiveSheet.Name 7、 本示例保存当前活动工作簿的副本ActiveWorkbook.SaveCopyAs C:TEMPXXXX.XLS 8、 下述过程激活工作簿中的第四张工作表Sheets(4).Activate 9、 下述过程激活工作簿中的第1张工作表Worksheets(1).Activate 10、 本示例通过将 Saved 属性设为 True 来关闭包含本段代码的工作簿,并放弃对该工作簿的任何更改ThisWorkbook.Saved = True ThisWorkbook.Close 11、 本示例对自动重新计算功能进行设置,使 Microsoft Excel 不对第一张工作表自动进行重新计算 Worksheets(1).EnableCalculation = False 12、 下述过程打开 C 盘上名为 MyFolder 的文件夹中的 MyBook.xls 工作簿 Workbooks.Open (C:MyFolderMyBook.xls) 13、 本示例显示活动工作簿中工作表 sheet1 上单元格 A1 中的值 MsgBox Worksheets(Sheet1).Range(A1).Value 14、 本示例显示活动工作簿中每个工作表的名称 For Each ws In Worksheets MsgBox ws.Name Next ws 15、 本示例向活动工作簿添加新工作表 , 并设置该工作表的名称 Set NewSheet = Worksheets.Add NewSheet.Name = current Budget 16、 本示例将新建的工作表移到工作簿的末尾 Private Sub Workbook_NewSheet(ByVal Sh As Object) Sh.Move After:=Sheets(Sheets.Count) End Sub 17、 本示例将新建工作表移到工作簿的末尾 Private Sub App_WorkbookNewSheet(ByVal Wb As Workbook, _ ByVal Sh As Object) Sh.Move After:=Wb.Sheets(Wb.Sheets.Count) End Sub 18、 本示例新建一张工作表,然后在第一列中列出活动工作簿中的所有工作表的名称Set NewSheet = Sheets.Add(Type:=xlWorksheet) For i = 1 To Sheets.Count NewSheet.Cells(i, 1).Value = Sheets(i).Name Next i 19、 本示例将第十行移到窗口的最上面?Worksheets(Sheet1).Activate ActiveWindow.ScrollRow = 10 20、 当计算工作簿中的任何工作表时,本示例对第一张工作表的 A1:A100 区域进行排序Private Sub Workbook_SheetCalculate(ByVal Sh As Object) With Worksheets(1) .Range(a1:a100).Sort Key1:=.Range(a1) End With End Sub 21、 本示例显示工作表 Sheet1 的打印预览Worksheets(Sheet1).PrintPreview 22、 本示例保存当前活动工作簿?ActiveWorkbook.Save 23、 本示例保存所有打开的工作簿,然后关闭 Microsoft Excel For Each w In Application.Workbooks w.Save Next w Application.Quit 24、 下例在活动工作簿的第一张工作表前面添加两张新的工作表Worksheets.Add Count:=2, Before:=Sheets(1) 25、 本示例设置 15 秒后运行 my_Procedure 过程,从现在开始计时 Application.OnTime Now + TimeValue(00:00:15), my_Procedure 26、 本示例设置 my_Procedure 在下午 5 点开始运行 Application.OnTime TimeValue(17:00:00), my_Procedure 27、 本示例撤消前一个示例对 OnTime 的设置Application.OnTime EarliestTime:=TimeValue(17:00:00), _ Procedure:=my_Procedure, Schedule:=False 28、 每当工作表重新计算时,本示例就调整 A 列到 F 列的宽度 Private Sub Worksheet_Calculate() Columns(A:F).AutoFit End Sub 29、 本示例使活动工作簿中的计算仅使用显示的数字精度 ActiveWorkbook.PrecisionAsDisplayed = True 30、 本示例将工作表 Sheet1 上的 A1:G37 区域剪下,并放入剪贴板 Worksheets(Sheet1).Range(A1:G37).Cut 31、 Calculate 方法 计算所有打开的工作簿、工作簿中的一张特定的工作表或者工作表中指定区域的单元格,如下表所示: 所有打开的工作簿 Application.Calculate (或只是 Calculate) 计算指定工作表Worksheets(Sheet1).Calculate 指定区域 Worksheets(1).Rows(2).Calculate 本示例对自动重新计算功能进行设置,使 Microsoft Excel 不对第一张工作表自动进行重新计算 Worksheets(1).EnableCalculation = False 本示例计算 Sheet1 已用区域中 A 列、B 列和 C 列的公式 Worksheets(Sheet1).UsedRange.Columns(A:C).Calculate 32、 本示例更新当前活动工作簿中的所有链接ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources 33、 本示例设置第一张工作表的滚动区域Worksheets(1).ScrollArea = a1:f10 34、 本示例新建一个工作簿,提示用户输入文件名,然后保存该工作簿Set NewBook = Workbooks.Add Do fName = Application.GetSaveAsFilename Loop Until fName False NewBook.SaveAs Filename:=fName 35、 本示例打开 Analysis.xls 工作簿,然后运行 Auto_Open 宏 Workbooks.Open ANALYSIS.XLS ActiveWorkbook.RunAutoMacrosxlAutoOpen 36、 本示例对活动工作簿运行 Auto_Close 宏,然后关闭该工作簿With ActiveWorkbook .RunAutoMacros xlAutoClose .Close End With 37、 在本示例中,Microsoft Excel 向用户显示活动工作簿的路径和文件名称Sub UseCanonical() Display the full path to user. MsgBox ActiveWorkbook.FullNameURLEncoded End Sub 38、 本示例显示当前工作簿的路径及文件名(假定尚未保存此工作簿)MsgBox ActiveWorkbook.FullName 39、 本示例关闭 Book1.xls,并放弃所有对此工作簿的更改Workbooks(BOOK1.XLS).Close SaveChanges:=False 40、 本示例关闭所有打开的工作簿如果某个打开的工作簿有改变,Microsoft Excel 将显示询问是否保存更改的对话框和相应提示Workbooks.Close 41、 本示例在打印之前对当前活动工作簿的所有工作表重新计算Private Sub Workbook_BeforePrint(Cancel As Boolean) For Each wk In Worksheets wk.Calculate Next End Sub 42、 本示例对查询表一中的第一列数据进行汇总,并在数据区域下方显示第一列数据的总和Set c1 = Sheets(sheet1).QueryTables(1).ResultRange.Columns(1) c1.Name = Column1 c1.End(xlDown).Offset(2, 0).Formula = =sum(Column1) 43、 本示例取消活动工作簿中的所有更改ActiveWorkbook.RejectAllChanges 44、 本示例在商业问题中使用规划求解函数,以使总利润达到最大值SolverSave 函数将当前问题保存到活动工作表上的某一区域 Worksheets(Sheet1).Activate SolverReset SolverOptions Precision:=0.001 SolverOK SetCell:=Range(TotalProfit), _ MaxMinVal:=1, _ ByChange:=Range(C4:E6) SolverAdd CellRef:=Range(F4:F6), _ Relation:=1, _ FormulaText:=100 SolverAdd CellRef:=Range(C4:E6), _ Relation:=3, _ FormulaText:=0 SolverAdd CellRef:=Range(C4:E6), _ Relation:=4 SolverSolve UserFinish:=False SolverSave SaveArea:=Range(A33) 45、 本示例隐藏 Chart1、Chart3 和 Chart5 Charts(Array(Chart1, Chart3, Chart5).Visible = False 46、 当激活工作表时,本示例对 A1:A10 区域进行排序 Private Sub Worksheet_Activate() Range(a1:a10).Sort Key1:=Range(a1), Order:=xlAscending End Sub 47、 本示例更改 Microsoft Excel 链接 ActiveWorkbook.ChangeLink c:excelbook1.xls, _ c:excelbook2.xls, xlExcelLinks 48、 本示例启用受保护的工作表上的自动筛选箭头? ActiveSheet.EnableAutoFilter = True ActiveSheet.Protect contents:=True, userInterfaceOnly:=True 49、 本示例将活动工作簿设为只读? ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly 50、 本示例使共享工作簿每三分钟自动更新一次? ActiveWorkbook.AutoUpdateFrequency = 3 51、 下述 Sub 过程清除活动工作簿中 Sheet1 上的所有单元格的内容 Sub ClearSheet() Worksheets(Sheet1).Cells.ClearContents End Sub 52、 本示例对所有工作簿都关闭滚动条? Application.DisplayScrollBars = False 53、 如果具有密码保护的工作簿的文件属性没有加密,则本示例设置指定工作簿的密码加密选项 Sub SetPasswordOptions() With ActiveWorkbook If .PasswordEncryptionProvider Microsoft RSA SChannel Cryptographic Provider Then .SetPasswordEncryptionOptions _ PasswordEncryptionProvider:=Microsoft RSA SChannel Cryptographic Provider, _ PasswordEncryptionAlgorithm:=RC4, _ PasswordEncryptionKeyLength:=56, _ PasswordEncryptionFileProperties:=True End If End With End Sub 54、 在本示例中,如果活动工作簿不能进行写保护,那么 Microsoft Excel 设置字符串密码以作为活动工作簿的写密码 Sub UseWritePassword() Dim strPassword As String strPassword = secret Set password to a string if allowed. If ActiveWorkbook.WriteReserved = False Then ActiveWorkbook.WritePassword = strPassword End If End Sub 55、 在本示例中,Microsoft Excel 打开名为 Password.xls 的工作簿,设置它的密码,然后关闭该工作簿本示例假定名为 Password.xls 的文件位于 C: 驱动器上 Sub UsePassword() Dim wkbOne As Workbook Set wkbOne = Application.Workbooks.Open(C:Password.xls) wkbOne.Password = secret wkbOne.Close 注意 Password 属性可读并返回 “*” End Sub 56、 本示例将 Book1.xls 的当前窗口更改为显示公式 Workbooks(BOOK1.XLS).Worksheets(Sheet1).Activate ActiveWindow.DisplayFormulas = True 57、 本示例接受活动工作簿中的所有更改? ActiveWorkbook.AcceptAllChanges 58、 本示例显示活动工作簿的路径和名称 Sub UseCanonical() MsgBox 消息框 b7 = ActiveWorkbook.FullName 当前工作簿 b8 = ActiveWorkbook.FullNameURLEncoded 活动工作簿 End Sub 59、 本示例显示 Microsoft Excel 启动文件夹的完整路径 MsgBox Application.StartupPath 60、 本示例显示活动工作簿中每个工作表的名称 For Each ws In Worksheets MsgBox ws.Name Next ws 61、 本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容 For Each w In Workbooks If w.Name ThisWorkbook.Name Then w.Close savechanges:=True End If Next w 62、 Activate 事件 激活一个工作簿、工作表、图表或嵌入图表时产生此事件 当激活工作表时,本示例对 A1:A10 区域进行排序 Private Sub Worksheet_Activate() Range(a1:a10).Sort Key1:=Range(a1), Order:=xlAscending End Sub 63、 Calculate 事件 对于 Worksheet 对象,在对工作表进行重新计算之后产生此事件 每当工作表重新计算时,本示例就调整 A 列到 F 列的宽度 Private Sub Worksheet_Calculate() Columns(A:F).AutoFit End Sub 64、 BeforeDoubleClick 事件 应用于 Worksheet 对象的 Activate 方法 当双击某工作表时产生此事件,此事件先于默认的双击操作 Private Sub expression_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) expression 引用在类模块中带有事件声明的 Worksheet 类型对象的变量 Target 必需双击发生时最靠近鼠标指针的单元格 Cancel 可选当事件发生时为 False如果事件过程将该参数设为 True,则该过程执行完之后将不进行默认的双击操作 65、 BeforeRightClick 事件 应用于 Worksheet 对象的 Activate 方法 当用鼠标右键单击某工作表时产生此事件,此事件先于默认的右键单击操作 Private Sub expression_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) expression 引用在类模块中带有事件声明的 Worksheet 类型对象的变量 Target 必需右键单击发生时最靠近鼠标指针的单元格 Cancel 可选当事件发生时为 False如果该事件过程将本参数设为 True,则该过程执行结束之后不进行默认的右键单击操作 66、 Change 事件 当用户更改工作表中的单元格,或外部链接引起单元格的更改时产生此事件 Private Sub Worksheet_Change(ByVal Target As Range) Target 更改的区域可以是多个单元格 说明 重新计算引起的单元格更改不触发本事件可使用 Calculate 事件俘获工作表重新计算操作 67、 本示例将更改的单元格的颜色设为蓝色 Private Sub Worksheet_Change(ByVal Target as Range) Target.Font.ColorIndex = 5 End Sub 68、 Deactivate 事件 图表、工作表或工作簿从活动状态转为非活动状态时产生此事件 Private Sub object_Deactivate() object Chart、Workbook 或者 Worksheet有关对 Chart 对象使用事件的详细信息,请参阅 Chart 对象事件的用法 69、 本示例当工作簿转为非活动状态时,对所有打开的窗口进行排列 Private Sub Workbook_Deactivate() Application.Windows.Arrange xlArrangeStyleTiled End Sub 70、 FollowHyperlink 事件 当单击工作表上的任意超链接时,发生此事件对于应用程序级或工作簿级的事件,请参阅 SheetFollowHyperlink 事件 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Target Hyperlink 类型,必需一个代表超链接目标位置的 Hyperlink 对象 71、 本示例对在当前活动工作簿中访问过的所有链接保留一个列表或历史记录 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) With UserForm1 .ListBox1.AddItem Target.Address .Show End With End Sub 72、 PivotTableUpdate 事件 发生在工作簿中的数据透视表更新之后 Private Sub expression_PivotTableUpdate(ByVal Target As PivotTable) expression 引用在类模块中带有事件声明的 Worksheet 类型对象的变量 Target 必需选定的数据透视表 73、 本示例显示一则消息,说明数据透视表已经更新本示例假定您已在类模块中声明了带有事件的 Worksheet 类型的对象 Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable) MsgBox The PivotTable connection has been updated. End Sub 74、 SelectionChange 事件 当工作表上的选定区域发生改变时,将产生本事件 Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Target 新选定的区域 75、 本示例滚动工作簿窗口,直至选定区域位于窗口的左上角 Private Sub Worksheet_SelectionChange(ByVal Target As Range) With ActiveWindow .ScrollRow = Target.Row .ScrollColumn = Target.Column End With End Sub 76、 本示例显示活动工作簿中工作表 sheet1 上单元格 A1 中的值 MsgBox Worksheets(Sheet1).Range(A1).Value 77、 本示例显示活动工作簿中每个工作表的名称 For Each ws In Worksheets MsgBox ws.Name Next ws 78、 本示例向活动工作簿添加新工作表,并设置该工作表的名称 Set newSheet = Worksheets.Add newSheet.Name = current Budget 79、 本示例关闭工作簿 Book1.xls,但不提示用户保存所作更改Book1.xls 中的所有更改都不会保存 Application.DisplayAlerts = False Workbooks(BOOK1.XLS).Close Application.DisplayAlerts = True 80、 本示例设置保存文件时显示提示,要求用户输入汇总信息 Application.PromptForSummaryInfo = True 81、 本示例显示 Microsoft Excel 的完整路径 Private Sub aa() MsgBox The path is & Application.Path End Sub 82、 示例显示每一个可用加载宏的路径及文件名 For Each a In AddIns MsgBox a.FullName Next a ChDir 语句 83、 改变当前的目录或文件夹 ChDir path 在 Power Macintosh 中,默认驱动器总是改为在 path 语句中指定的驱动器完整路径指定由卷标名开始,相对路径由冒号 (:) 开始. ChDir 可以辨认路径中指定的别名: ChDir MacDrive:Tmp 在 Macintosh 中 84、 本示例显示当前路径分隔符 MsgBox The path separator character is & _ Application.PathSeparator 85、 Move 方法 将一个指定的文件或文件夹从一个地方移动到另一个地方 语法 object.Move destination Move 方法语法有如下几部分: 部分 描述 object 必需的始终是一个 File 或 Folder 对象的名字 destination 必需的文件或文件夹要移动到的目标不允许有通配符 86、 CreateFolder 方法 创建一个文件夹 语法 object.CreateFolder(foldername) reateFolder 方法有如下几部分: 部分 描述 object 必需的始终是一个 FileSystemObject 的名字 foldername 必需的字符串表达式,它标识创建的文件夹 87、 本示例使用 MkDir 语句来创建目录或文件夹如果没有指定驱动器,新目录或文件夹将会建在当前驱动器中 MkDir MYDIR 建立新的目录或文件夹 88、 Name 语句示例 本示例使用 Name 语句来更改文件的名称示例中假设所有使用到的目录或文件夹都已存在 在 Macintosh 中,默认驱动器名称是 “HD” 并且路径部分由冒号取代反斜线隔开 Dim OldName, NewName OldName = OLDFILE: NewName = NEWFILE 定义文件名 Name OldName As NewName 更改文件名 OldName = C:MYDIROLDFILE: NewName = C:YOURDIRNEWFILE Name OldName As NewName 更改文件名,并移动文件 89、 本示例显示当前默认文件路径 MsgBox The current default file path is & _ Application.DefaultFilePath 90、 本示例设置替换启动文件夹 Application.AltStartupPath = C:EXCELMACROS FolderExists 方法 91、 如果指定的文件夹存在返回 True,不存在返回 False 语法 object.FolderExists(folderspec) 92、 本示例在单元格中启用编辑 Application.EditDirectlyInCell = True VBA 入门课程 /excel/topic.htm Advanced Office 2000 Password Recovery 破解VBA的程序 我学VBA时的两本书!excle2000vba开发实例指南晶辰工作室 excle2002函数应用秘笈中国铁路出版社 程序说明: 93、 几种用VBA在单元格输入数据的方法: Public Sub Writes() 1- 2 方法,最简单在 中输入单元格名称 1 A1 = 100 在 A1 单元格输入100 2 A2:A4 = 10 在 A2:A4 单元格输入10 3- 4 方法,采用 Range( ), 中输入单元格名称 3 Range(B1) = 200 在 B1 单元格输入200 4 Range(C1:C3) = 300 在 C1:C3 单元格输入300 5- 6 方法,采用 Cells(Row,Column),Row是单元格行数,Column是单元格栏数 5 Cells(1, 4) = 400 在 D1 单元格输入400 6 Range(Cells(1, 5), Cells(5, 5) = 50 在 E1:E 5单元格输入50 End Sub 94、 你点选任何单元格,按 Selection 按钮,则所点选的单元格均会被输入文字 Test Public Sub Selection1() Selection.Value = Test 在任何你点选的单元格输入文字 Test End Sub 95、 几种如何把别的工作表 Sheet4 数据,读到这个工作表的方法:在被读取的单元格前加上工作表名称 Sheet4 Public Sub Writes() 1- 2 方法,最简单在被读取的 前加上被读取的工作表名称 Sheet4 1 A1 = Sheet4.A1 把Sheet4 A1 单元格的数据,读到 A1单元格 2 A2:A4 = Sheet4.B1 把 Shee4 工作表单元格 B1 数据,读到 A2:A4 单元格 3- 4 方法,在被读取的工作表 Range( )的 Range 前加上被读取的工作表名称Sheet4 3 Range(B1) = Sheet4.Range(B1) 把 Shee4工作表单元格 B1 数据,读到 B1 单元格 4 Range(C1:C3) = Sheet4.Range(C1) 把 Shee4 工作表单元格 C1 数据,读到 C1:C3 单元格 5- 6 方法,在被读取的工作表 Cells(Row,Column),Cells 前加上被读取工作表名称 Sheet4 5 Cells(1, 4) = Sheet4.Cells(1, 4) 把 Shee4 工作表单元格 D1 数据,读到 D1 单元格 6 Range(Cells(1, 5), Cells(5, 5) = Sheet4.Cells(1, 5) 把 Shee4 工作表单元格 E1 数据,读到 E1:E 5单元格 End Sub 96、 你点选任何单元格,按 Selection 按钮,则所点选的单元格均会被输入 Shee4 工作表单元格 F1 数据 Public Sub Selection1() Selection.Value = Sheet4.F1 把 Shee4 工作表单元格 F1 数据,读到任何你点选的单元格 End Sub 97、 如何利用 Worksheet_SelectionChange 输入数据的方法 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Target = 100 End Sub Target 指的是你鼠标所选的单元格,Worksheet_SelectionChange() 事件的参数 可以是一个也可以是好几个单元格 Range 是 Excel 特有的变量形态,叫范围 Target As Rang 是把 Target 这个参数设定为 Range 变量形态 Target = 100 是把你点选的单元格输入数字100 98、 如何利用 Worksheet_SelectionChange 在限定的单元格输入数据的方法 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row = 2 And Target.Column = 2 Then Target = 100 End If End Sub If . Then . End If 这是我们学的这一个逻辑判断语句 Target.Row = 2,指的是鼠标选定的单元格的行大于或等于 2 Target.Column = 2 ,指的是鼠标选定的单元格的栏等于 2 If Target.Row = 2 And Target.Column = 2 Then 指的是只有在Target.Row = 2及Target.Column = 2二个条件成立时 就是 (Target.Row = 2) 为True及(Target.Column = 2)为True时,才执行下面的程序 Target=100, 也就是 B 栏第二行及以下行用鼠标被点选时,才会被输入100,其它单元格则不被输入数据 99、 比较 Worksheet_SelectionChange() 与用按钮 CommandButton1_Click() 来执行程序二者的方法与写法有何不同 Worksheet_SelectionChange()事件 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row = 2 And Target.Column = 2 Then Target = 100 End If End Sub 按钮CommandButton1_Click() Private Sub CommandButton1_Click() If ActiveCell.Row = 2 And ActiveCell.Column = 3 Then ActiveCell = 100 End If End Sub 二者执行方法最大的地方,在于 Worksheet_SelectionChange() 是自动的,你不用了解他是怎么完成工作的 按钮 CommandButton1_Click() 是人工的,比 SelectionChange()多一道手续,就是要去按那接钮,程序才会执行 SelectionChange() 有一个参数 Target 可用;CommandButton1_Click ()没有 所以我们要用 ActiveCell 内定函数来取代Target,ActiveCell 与 Target最大的不同点他只能指定一个单元格 就是你选取多个单元格也只有最上面的单元格会加上数据;用 Selection 取代 ActiveCell, 用法就跟 Target 一样了 100、 完整的 If.Then End 逻辑判断式 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row = 2 And Target.Column = 2 Then Target = 200 ElseIf Target.Row = 2 And Target.Column = 3 Then Target = 300 ElseIf Target.Row = 2 And Target.Column = 2 Then Target = 400 Else Target = 500 End If End Sub 这是个完整的 If 逻辑判断式,意思是说,假如 If 後的判断式条件成立的话,就执行第二条程序,否则假如 ElseIf 後的判断式条件成立的话,就执行第四条程序,否则假如另一个 ElseIf 後的判断式条件成立的话,就执行第六条程序 Else 的意思是说,假如以上条件都不成立的话,就执行第八条程序 他的执行方式是假如 IF 的条件成立的话,就不执行其它ElseIf 及Else 的逻辑判断式,假如 If 後的条件不成立的话才会执行 ElseIf 或 Else 逻辑判断式第二个 ElseIf後的条件因为与 IF 後的条件一样,所以这个判断式後面的 Target=400 将是永远无法执行到的程序 101、 我们为什麽要用变数 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim i , j As Integer Dim k As Range i = Target.Row j = Target.Column Set k = Target If i = 2 And j = 2 Then k = 200 ElseIf i = 2 And j = 3 Then k = 300 ElseIf i = 2 And j = 4 Then k = 400 Else k = 500 End If End Sub 跟VBALesson 6比较,程序是不是明朗多了,在前课重复的用 Target.Row,Target.Column及Target来写程序是不是有一点烦用变量的第一个好处大家马上感觉得出来,就是可以简化程序 使用变量前,你得先宣告变量宣告变量的方法是在 Dim 后面写上变量 i As 后面接上变量的形态 Integer Dim i , j As Integer 就是宣告 i 与 j 为整数变量,这是同时宣告二个变量 i 与 j 所以要在二个变量间加个 , 号 Dim k As Range 是宣告 k 为范围资料形态,Range这是 Excel 特有的资料形态 i = Target.Row是把当前单元格的行数,指定给变
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 劳动节创意活动策划方案
- 勤俭节约实践活动实施方案与成效总结
- 26年随访服务奖励机制
- 玩球户外活动策划与实施指南
- 青春叛逆期的孩子教育策略
- 教育实习目的
- 群众纪律教育专题大纲
- 2025年城市古玩市场周边信号时段管控
- 离职佣金结算协议书
- 租用宿舍安全协议书
- 2025-2026学年河北省沧州市中考物理最后冲刺浓缩卷(含答案解析)
- (2025版)脑电监测在全身麻醉镇静患者临床应用的专家共识解读课件
- 棉纺厂消防安全考核制度
- 吉林省事业编制请假制度
- 铸造行业节能降碳分析报告
- 【答案】《世界贸易组织法律制度》(西南政法大学)章节期末慕课答案
- 汽车制造VDA 6.3过程审核点检表模板
- 核技术利用教学课件
- 检验科消防安全培训课件
- 杭州水务考试题库及答案
- 2025年成都经济技术开发区(龙泉驿区)区属国有企业专业技术人员公开招聘备考题库及参考答案详解
评论
0/150
提交评论