• 如何用vba切换工作表的视图?

    每个工作表的视图可以有“普通”、“分页预览”、“页面布局”3种。

    如果要用vba批量设置工作表的视图,可以使用Window对象的View属性设置。

    当时用用Window对象的View属性设置工作表的视图时,每次只能设置活动工作表的视图,所以如果要批量设置所有工作表的视图,需要先激活每个工[……]

    阅读全文

  • 如何用vba获取或设置工作表的打印区域?

    要用vba获取或设置工作表的打印区域,需要用到PageSetup对象。

    PageSetup对象可以通过工作表对象WorksheetPageSetup属性获得。

    要设置或获取工作表的打印区域,可以使用PageSetup对象的PrintArea属性。

    如果设置PageSetup对象的[……]

    阅读全文

  • 如何用vba获取工作表的图片所占据的单元格区域?

    在excel工作表中图片都是至于单元格上的图层。

    在vba中用Shape对象表示各种图片,如果要获取某个图片所占据的单元格区域,可以使用Shape对象的TopLeftCell属性和BottomRightCell属性返回Shape对象的左上角和右下角单元格区域,从而构成了整个图片占据的单元格区域[……]

    阅读全文

  • 如何用vba获取excel工作表中数据在任意位置的单元格区域range?

    在编写vba的解决方案时,excel工作表的数据所在的单元格区域未必在以A1单元格作为开始,有可能以任意一个单元格所在的位置作为开始,如下图所示:

    为了精准地定位到excel工作表中的唯一的数据区域,需要灵活使用Range对象的各种属性。

    以下是一个通用的获取excel工作表中唯[……]

    阅读全文

  • 如何用vba自杀文件?

    如何用vba删除文件?一文中我们介绍了用vba的kill语句删除文件的方法。

    但是如果直接用以下的代码删除自身,会弹出“拒绝的权限”的对话框:

    如下图所示:

    这是由于打开的excel工作簿是读写模式,在读写模[……]

    阅读全文

  • 如何在保护工作表上启用组合、分级显示?

    默认情况下,在保护工作表上是无法再使用分级显示的,如下图所示:

    如果要在保护工作表上启用分级显示,可以通过设置Worksheet对象的Protect方法中的UserInterfaceOnly参数为True,该参数默认情况下通过录制宏是不会显示的,然后设置Worksheet对象的Enab[……]

    阅读全文

  • 在数据量很大时,如何用vba代替countif函数进行计数统计?

    countif函数可以统计单元额区域中指定数据的出现次数,是一个常用的excel函数。

    在数据量较少时,这个函数的统计可以很轻松的完成。

    但是当遇到十万行级别的数据时,再利用countif函数进行技术统计会导致excel陷入死机或卡机状态,函数的计算非常缓慢。

    为了提高在一列单元格[……]

    阅读全文

  • 如何用vba给单元格区域添加数据有效性下拉列表?

    在vba中Range对象的Validation属性可以返回数据有效性对象Validation

    要给单元格区域添加数据有效性,需要先用Validation对象的Delete方法删除之前的数据有效性,然后再用Validation对象的Add方法添加。

    以下是一段给单元格添加下拉列表的示例代[……]

    阅读全文

  • excel vba Range对象的Characters属性无效的解决办法

    在excel vba中Range对象的Characters属性可以返回Characters对象。

    Characters对象可以操作单个单元格中的部分字符,比如通过Characters对象的Font属性可以设置单元格中部分字符的字体格式,比如添加下划线、加粗、加颜色等等。

    再比如通过Cha[……]

    阅读全文

  • 如何在vba使用自动筛选?

    在excel工作表中,通过单击“数据”选项卡下的“排序和筛选”组中的“筛选”按钮可以创建单元格区域的自动筛选,如下图所示:

    每个工作表通过上述方式有且只能创建一个单元格区域的自动筛选。

    在vba中,Worksheet对象的AutoFilter属性可以返回上述工作表中的唯一的自动筛[……]

    阅读全文