• 如何用vba将vba工程中的所有模块导出?

    要用vba将vba工程中的所有模块导出,需要用到CodeModule对象的Export方法,代码如下:

     

  • 如何用vba删除所有vba工程中的vba代码?

    如下图所示:

    vba工程中有许多组件,每个组件中都可能有vba代码,如果要把所有vba代码都删除,需要访问组件的CodeModule对象。

    具体步骤如下:

    1. 先遍历所有VBComponent对象
    2. 获取所有VBComponent对象的CodeModule对象的CountOfLines,也就是总的代码行数。
    3. 最后用DeleteLines方法删除所有代码。

    [……]

    阅读全文

  • 如何用vba将某个模块的所有vba代码添加插入到当前模块中?

    要用vba将某个模块的所有vba代码添加插入到当前模块中,需要按照以下步骤:

    1. 获取要被复制代码的模块;
    2. Lines属性获取该模块的所有代码;
    3. 获取要插入代码的模块对象;
    4. AddFromString方法添加步骤2中获取的代码。

    以下示例代码可以将所有组件中的代码添加插入到当前模块中:

  • 如何用vba遍历所有的工程组件VBComponent?

    如下图所示:

    在vba工程中有窗体(UserForm1)、类模块(类1)、标准模块(模块1、模块2),文档模块(Sheet1、ThisWorkbook)等组件。

    以下示例代码可以遍历所有组件,并输出所有组件的名称、类型以及声明代码的总行数和代码的总行数:

  • 如何用vba返回工程资源管理器中当前选中的VBComponent的信息?

    如下图所示:

    在vbe中当前选中的是标准模块中的“模块1”,在vba中可以使用VBE对象的SelectedVBComponent属性返回当前选中的vba工程中的组件。

    以下示例代码将返回当前选中的标准模块“模块1”中的代码总行数和声明部分的代码总行数:

  • 如何在vba中用ado合并多个工作表的内容?

    要用ado合并多个工作表的内容可以使用sql语句 union all 。

    以下是在vba中用ado合并当前工作簿的所有工作表内容的示例代码:

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

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

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

    以下是一段给单元格添加下拉列表的示例代码:

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

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

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

    再比如通过Characters对象的Text属性可以返回部分字符,并且替换部分字符。

    比如以下代码将A1单元格[……]

    阅读全文

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

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

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

    在vba中,Worksheet对象的AutoFilter属性可以返回上述工作表中的唯一的自动筛选AutoFilter对象,如果工作表中没有为单元格区域开启自动筛选,则AutoFilter属性返回[……]

    阅读全文

  • 如何用vba实现中文汉字转拼音,并且带声调?

    用vba实现中文汉字转拼音,网上有很多帖子。

    总结了下,大概可以分为以下3种:

    1. 预先内置汉字拼音字典,然后再匹配生成拼音,这个方法对多音字无法准确识别;
    2. 利用微软拼音输入法库,生成拼音,这个方法需要安装有微软拼音输入法;
    3. 利用网络数据采集,生成拼音,这个方法可以识别多音字,但是速度和效率不高。

    今天,介绍利用网络数据采集,生成拼音的方案,通过网抓,可以利用大平台的[……]

    阅读全文