靠谱电子书 > 经管其他电子书 > excel_vba_编程教程(完整版) >

第79部分

excel_vba_编程教程(完整版)-第79部分

小说: excel_vba_编程教程(完整版) 字数: 每页4000字

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



     ActiveSheet。Protect DrawingObjects:=True; Contents:=True; _  
       Scenarios:=True  
     ' Resize window to show all of calendar (may have to be adjusted  
     ' for video configuration)。 设置窗口大小以显示完整日历  
     ActiveWindow。WindowState = xlMaximized  
     ActiveWindow。ScrollRow = 1  
     ' Allow screen to redraw with calendar showing。 允许屏幕重绘日历显示  
     Application。ScreenUpdating = True  
     ' Prevent going to error trap unless error found by exiting Sub  
     ' here。 放置没有错误时也允许错误陷阱  
     Exit Sub  
     ' Error causes msgbox to indicate the problem; provides new input box; 错误导致信 
     息框指明问题,提供新的输入框  
     ' and resumes at the line that caused the error。 并恢复至导致错误的代码行  
MyErrorTrap:  
     MsgBox 〃You may not have entered your Month and Year correctly。〃 _  
       & Chr(13) & 〃Spell the Month correctly〃 _  
       & 〃 (or use 3 letter abbreviation)〃 _  
       & Chr(13) & 〃and 4 digits for the Year〃  
     MyInput = InputBox(〃Type in Month and year for Calendar〃)  
     If MyInput = 〃〃 Then Exit Sub  
     Resume  
End Sub  

                                         279 

… 页面 296…

 事件名称                       新建工作表  
 事件描述                       示例18当用户新建一个工作表后,引发 该事件  
 Private Sub Workbook_NewSheet(ByVal Sh As Object)  
  If MsgBox(〃Do you want to place 〃 & vbCrLf _  
    & 〃the new sheet at the beginning 〃 & vbCrLf _  
    & 〃of the workbook?〃; vbYesNo) = vbYes Then  
      Sh。Move before:=ThisWorkbook。Sheets(1)  
      Else  
        
Sh。Move After:=ThisWorkbook。Sheets( _  
  ThisWorkbook。Sheetsunt)  
MsgBox Sh。Name & _  
  〃 is now the last sheet in the workbook。〃  
                                  End If  
                                End Sub  
   
 当用户在弹出的信息框上点击是的话,示例程序就会将新建的工作表置于工作簿的开始,否则在结 
 尾  
   
 示例18 – 试验:打开一个新工作簿,在VB编辑器窗口,激活工程浏览器窗口并且打开Excel对象 
 文件夹。双击ThisWorkbook并 且输入示例程序于ThisWorkbook代码窗口。切换到Excel窗口,并且 
 在工作表标签的任意地方单击右键,从快捷菜单上选择插入, 选择你想要插入的工作表类型,并 
 点击确定。Excel将会问你将新建的工作表放置到什么地方。下面是一个Excel工作表可以响应的 
 事件列表。  
 事件名称                       描述  
 SheetActivate                  当用户激活当前工作簿里的任何工作表发 
                                生该事件。SheetActivate事件 同样也可 
                                以发生在应用软件级别,当你激活任意打 
                                开的工作簿里的任意 工作表时,都会激活 
                                该事件  
 SheetDeactivate                当用户激活工作簿里一个不同的工作表时,引发该事件  
 SheetSelectionChange           当用户选择不同单元格时,引发该事件。 
                                该事件发生在该工作簿里的每 个工作表 
                                上  
 SheetChange                    本事件发生在用户更改单元格内容时  
 SheetCalculate                 本事件发生在用户重新计算工作表的时候  
 SheetBeforeDoubleClick         当用户双击工作表上的单元格时,引发该事件  
 SheetBeforeRightClick          当用户在工作表单元格上单击右键时,引发该事件  
 事件名称                       激活窗口  
 事件描述                       示例19  
 当用户激活任何显示该工作簿的   
 窗口时,引发该事件             Private Sub Workbook_WindowActivate(ByVal _  
                                  Wn As Window)  
                                    Wn。GridlineColor = vbYellow  
                                End Sub  
  
 当用户激活包含Workbook_WindowActivate程序的工作簿时,示例程序将更改工作表的网格线颜色 
 为黄色  
 示例19 – 试验:在VB编辑器窗口,激活工程浏览器窗口并打开Excel对象文件夹。双击 
 ThisWorkbook,并输入示例程序。切换 到Excel窗口,打开一个全新的工作簿。使用窗口菜单将 
 Excel工作簿设置为竖直并排排列。当你激活含有示例程序的工作簿时, 网格线应该会变为黄色 
 了。  
 事件名称                       窗口失活  
 事件描述                       示例20  

                                           280 

… 页面 297…

 当用户将焦点从该工作簿窗口移 走时,引发该事件  
Private Sub Workbook_WindowDeactivate(ByVal _  
  Wn As Window)  
    Wn。GridlineColor = vbRed  
End Sub  
  
 当用户从包含Workbook_WindowActivate过程代码的工作簿切换到另外一个 
 工作簿时,示例程序将其网格 线设置为红色  
 示例20 – 试验:在VB编辑器窗口,激活工程浏览器窗口并打开Excel文件夹,双击ThisWorkbook 
 并输入示例程序。切换到Excel 窗口,打开一个全新的工作簿。使用窗口菜单将所有Excel工作簿 
 设置为竖直排列。当你失活包含Workbook_WindowDeactivate 事件代码的工作簿并切换到空工作 
 簿时,被失活地工作表里的网格线就会被变为红色。  
 事件名称                       窗口调整大小  
 事件描述                       示例21  
 当用户打开窗口,调整窗口大小, 最大化或者最小化窗口时,引发 该事件  
 Private Sub Workbook_WindowResize(ByVal Wn As Window)  
  If Wn。WindowState  xlMaximized Then  
    Wn。Left = 0  
    Wn。Top = 0  
  End If  
End Sub  
  
 当用户调整窗口大小时,示例程序将工作簿窗口移至屏幕的左上角  
 示例21 – 试验:在VB编辑器窗口,激活工程浏览器窗口并且打开Excel对象文件夹。双击 
 ThisWorkbook并输入示例程序。切换 到Excel窗口并且点击还原按钮(工作簿,非Excel应用软件)。 
 通过拖曳窗口内部边框改变当前活动窗口大小时,一旦你完成大 小调整操作,该工作簿窗口会 
  自动跳到屏幕的左上角(Excel应用软件窗口的左上角)。  
 下述表格描述了Excel 2002里增加的工作簿事件。    
   
 事件名称                       描述  
 PivotTableOpenConnection       当数据透视表报告打开对其数据源的连接时发生该事件。该事件 
                                要求你 在类模块里面使用WithEvents关键字声明一个 
                                Application或者Workbook类型对象。(参见“图表事件”和“应 
                                用程序对象识别的事 件”部分有关该关键字使用的示例)  
 PivotTableCloseConnection      当数据透视表报告关闭对其数据源的连接 
                                后发生该事件。该事件要求你 在类模块里 
                                面使用WithEvents关键字声明一个 
                                Application或者 Workbook类型对象。 
                                 (参见“图表事件”和“应用程序对象识 
                                别的事 件”部分有关该关键字使用的示 
                                例)  
 SheetPivotTableUpdate          当数据透视表报告被更新后发生该事件。该事件要求你在类模块里使 
 需要下述两个参数:             用 关键字WithEvents声明一个Application或者Workbook的type对 
 Sh – 被选择的工作表           象(参 见示例 9,需要使用关键字WithEvents设置事件处理的相关 
 Target – 被选择的数据透视表  信息)。该 事件处理可以在附带CD里的PivotReport。xls里找到。  
 报 告                          Private Sub App_SheetPivotTableUpdate( _  
                                  ByVal Sh As Object; ByVal Target As PivotTable)  
                                    MsgBox 〃Pivot Table has been updated。〃  
                                End Sub  

                                           281 

… 页面 298…

  

6。图表事件  

  众所周知,你可以创建一个内嵌在工作表里的图表,也可以创建一个单独的图表工作表。在本节, 
 你将学习如何控制图表事件, 不管你决定了将你的图表放在哪里。在你试验图表事件之前,做以 
 下几件事情:  
 1。  打开一个新Excel工作簿,并且保存为ChartEvents。xls  
 2。  输入示例数据,如图14…6所示  
 3。  选择单元格区域A1:D4,并点击工具栏上的图表按钮  
 4。  准备一个柱型图,如图14…6所示,并将其内嵌于工作表内  
 5。  使用相同的数据,创建一个折线图于一个单独的图表工作表(参见图14…7)  
 6。  将图表工作表名称改为Sales Analysis Chart。  
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
                                                                     
   
 图14…6 内嵌于工作表的柱型图  

                                                                                             
 图14…7 置于图表工作表里的折线图  
 下面的表格列出了图表对象的事件。在该表格里示范的示例程序应该在你刚才放置在图表工作表里 
 的折线图上试验(参见图  
 14…7)。内嵌于工作表里的图表的事件需要特别设置,本章稍候将讲解。  
 1。  在VB编辑器窗口,激活工程浏览器窗口并打开Excel对象文件夹  
 2。  双击图表对象Chart1 (Sales Analysis Chart)  
 3。  在代码窗口,输入事件程序,如下表所示  
 4。  激活图表工作表,并执行一些将引发事件过程的操作。例如,点击图表标题后, 
                                          282 

… 页面 299…

    Chart_MouseDown和Chart_Select事件就 会被引发。  
事件名称                        描述  
Activate                        当用户激活图表工作表时引发该事件  
                                Private Sub Chart_Activate()  
                                  MsgBox 〃You've activated the chart sheet。〃  
                                End Sub  
Deactivate                      当用户离开该图表时引发该事件(进入其它工作表)  
                                Private Sub Chart_Deactivate()  
                                  MsgBox 〃It looks like you want to leave the chart sheet。〃  
                                End Sub  
Select                          当用户选择了某个图表成员时引发该事件  
                                Private Sub Chart_Select(ByVal ElementID As Long; _  
                                  ByVal Arg1 As Long; ByVal Arg2 As Long)  
                           

返回目录 上一页 下一页 回到顶部 0 0

你可能喜欢的