Excel開發學習筆記:根據工做表worksheet內容控制按鈕的狀態

開發環境基於VSTO,具體配置:visual studio 2010,VB .Net,excel 2007,文檔級別的定製程序。

在Ribbon工具欄中有2個功能按鈕,它們是否可用取決於worksheet(sheet1)中的內容。工具

button1須要在sheet1中存在某個關鍵字(好比「默認勾選」)的時候可用,在sheet1初始化和內容變動事件中添加代碼,下面的Ribbon1.Button1是我項目中的工具欄和按鈕名稱spa

     Public  Function checkRow()  As  Boolean  
         Dim findCheck  As Excel.Range = findLastCell( " 默認勾選 "' findLastCell的定義見以前的blog  
         If (findCheck  Is  NothingThen  
             Return  False  
         Else  
             Return  True  
         End  If  
     End Function  
      
     Private  Sub Sheet1_Change(Target  As Microsoft.Office.Interop.Excel.Range)  Handles  Me.Change  
        Globals.Ribbons.Ribbon1.Button1.Enabled = checkKpiRow()  
     End Sub  
      
     Private  Sub Sheet1_Startup()  Handles  Me.Startup  
        Globals.Ribbons.Ribbon1.Button1.Enabled = checkKpiRow()  
     End Sub 

 

button2須要當用戶選中sheet1中某個關鍵字單元格(好比「名稱」)的時候可用,在sheet1初始化、SelectionChange事件、工做表激活事件中添加代碼

     Private  Function isSelectNameCell()  As  Boolean  
         With Application  
             If (.ActiveCell.Value  Is  NothingThen  
                 Return  False  
             End  If  
             If (.ActiveCell.Value.ToString =  " 名稱 "Then  
                 Return  True  
             End  If  
              
             Return  False  
         End  With  
     End Function  
      
     Private  Sub Sheet1_Startup()  Handles  Me.Startup  
        Globals.Ribbons.Ribbon1.Button2.Enabled = isSelectNameCell()  
     End Sub  
      
     Private  Sub Sheet1_SelectionChange(Target  As Microsoft.Office.Interop.Excel.Range)  Handles  Me.SelectionChange  
        Globals.Ribbons.Ribbon1.Button2.Enabled = isSelectNameCell()  
     End Sub  
      
     Private  Sub Sheet1_ActivateEvent()  Handles  Me.ActivateEvent  
        Globals.Ribbons.Ribbon1.Button2.Enabled = isSelectNameCell()  
     End Sub 
相關文章
相關標籤/搜索