Excel开发学习笔记:根据工作表worksheet内容控制按钮的状态

开发环境基于VSTO,具体配置:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序。

在Ribbon工具栏中有2个功能按钮,它们是否可用取决于worksheet(sheet1)中的内容。

button1需要在sheet1中存在某个关键字(比如“默认勾选”)的时候可用,在sheet1初始化和内容变更事件中添加代码,下面的Ribbon1.Button1是我项目中的工具栏和按钮名称

     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 

 

转载于:https://www.cnblogs.com/pop-lar/p/4696485.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值