开发环境基于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 Nothing) Then  
            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 Nothing) Then  
                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 

Excel开发学习笔记:根据工作表worksheet内容控制按钮的状态的更多相关文章

  1. Excel开发学习笔记:界面交互与控件的布局

    遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具.在业余时间一边自学一边实践,抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵. , ).value ...

  2. Excel开发学习笔记:查找与创建worksheet

    开发环境基于VSTO,具体配置:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序. 如题,我在ThisWorkbook.vb中添加了一个public函数来 ...

  3. RDLC 微软报表 导出Excel时产生多个工作表 (worksheet)

    . I have added two obejcts data source to Report Viewer. 2. in RDLC i have created two tables and in ...

  4. Excel开发学习笔记:新建文档级的excel解决方案

    工作中遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具.在业余时间一边自学一边实践,最近终于完成了雏形.抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多 ...

  5. EXCEL 2010学习笔记 —— 数据透视表

    今天整理一下EXCEL2010 数据透视表的课程笔记,数据透视表可以对多组数据进行统计和整理,是一种基本的数据可视化工具. 记录6个方面的总结: 1.创建数据透视表 2.更改数据透视表的汇总方式 3. ...

  6. Excel开发学习笔记:读取xml文件及csv文件

    遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具.在业余时间一边自学一边实践,抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵. ).Split(  ...

  7. Excel开发学习笔记:VB.net的一些杂项

    遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具.在业余时间一边自学一边实践,抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵. 开发环境基于VST ...

  8. Excel开发学习笔记:发布VSTO下的Excel开发项目

    遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具.在业余时间一边自学一边实践,抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵. 开发环境基于VST ...

  9. Excel开发学习笔记:文件选择控件、查找匹配项、单元格格式及数据有效性

    一个自用的基于excel的小工具. , ), .Cells(, ))          sysKpiRow.Interior.ColorIndex =  ).value = , )           ...

随机推荐

  1. 使用springmvc时报错HTTP Status 400 -

    这个错误大多是因为,jsp的form表单提交的字段类型和后台接收字段类型不匹配造成的(例如,form中为String,后台接收为Integer). 我这里就是jsp表单中的日期数据没有写明类型,然后用 ...

  2. mysql-debug: Thread stack overrun

    bug info 报错信息: java.sql.SQLException: Thread stack overrun: 5456 bytes used of a 131072 byte stack, ...

  3. Ubuntu窗口大小调节方法

    Description: 在Vmware Workstation 11上安装了Ubuntu 10.0,画面显示如下所示: Ubuntu系统的屏幕太小.调整方法:调节显示器分辨率即可,下图是将分辨率调节 ...

  4. PHP内核研究

    深入理解PHP内核:Think In PHP Internals(TIPI)是一个开源项目 ,分享PHP内部实现的细节,如内核,扩展等.官网见:http://www.php-internals.com ...

  5. centOS 7 tomcat nginx 验证码乱码

    将服务部署在centOS 7上,配置完tomcat和nginx之后,启动服务后,发现验证码这样了~~~ 一开始是以为nginx的原因,但是在Ubuntu系统相同操作发现没有问题,后发现,系统的字体库中 ...

  6. 剑指Offer面试题:11.调整数组顺序使奇数位于偶数前面

    一 题目:调整数组顺序使奇数位于偶数前面 题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 二 解题思路 如果不考虑时间复杂度 ...

  7. tensorflow学习笔记(三十九):双向rnn

    tensorflow 双向 rnn 如何在tensorflow中实现双向rnn 单层双向rnn 单层双向rnn (cs224d) tensorflow中已经提供了双向rnn的接口,它就是tf.nn.b ...

  8. aspupload ,在winows server 2008 下无法使用

    aspupload ,在winows server 2008 下无法使用.求助解决办法 2014-01-12 13:31 goolean | 浏览 775 次 操作系统 aspupload64位,安装 ...

  9. 16.Selenium+Python关于句柄的小Demo

    前言:有些链接点击之后,会重新打开一个窗口,对于这种情况,就要切换窗口了,获得窗口的唯一标识是用句柄(handle) 代码如下所示: from selenium import webdriver dr ...

  10. leetcode 21.Merge Two Sorted Lists ,java

    题目: Merge two sorted linked lists and return it as a new list. The new list should be made by splici ...