精华内容
下载资源
问答
  • 熟悉Word的朋友都清楚,对于WORD文档的信息统计,是一个标准的功能,打开一个WORD文档,当选择一段文字后,在下面的信息栏中就会提示选中的字数、段落数等信息。那么这个功能是如何实现的的呢?我们利用VBA可否也...

    5d4deed0b8136e2f0f8a358c58e0f3c7.png

    大家好,我们今日继续讲解VBA代码解决方案的第146讲内容:如何实现Word文档的信息统计。熟悉Word的朋友都清楚,对于WORD文档的信息统计,是一个标准的功能,打开一个WORD文档,当选择一段文字后,在下面的信息栏中就会提示选中的字数、段落数等信息。那么这个功能是如何实现的的呢?我们利用VBA可否也可以实现类似的功能呢?今日的内容就当大家实现这个功能。当然,目的仍是让大家熟悉在WORD中如何利用循环语句。

    说句实在话,对于一个OFFICE软件,无论是excel还是word,在微软提供的功能中如果想实现循环计算只有两个办法,一是利用数组,二是利用迭代运算。但这两种方法都有自己的局限性,比如迭代,要受到迭代次数的影响,不同的迭代次数运行的结果会有不同,而数组本身就是EXCEL的一个难点,说句夸张的话,在讲数组的文章中,或许你只有在我的这个平台可以能看到系统的讲解,如何的定义,如何的利用,在讲VBA之前我利用了大量的时间给大家讲EXCEL函数及各种高端的应用,如果感兴趣的朋友可以回过头来看看我之前的文章。如果我们理解了VBA这个知识点完全可以用VBA来解决,而且,解决的更好。

    今日讲的实例是利用循环统计出所选文本中的句子数量和结尾的标点符号。

    Sub mynzsen()

    Dim s As Range, SenCount As Integer, MyString As String

    Dim EndChar As String, K As Integer

    K = 0

    With Selection

    If .Type = wdNoSelection Then Exit Sub

    SenCount = .Sentences.Count '取得所选内容的句子数

    For Each s In .Sentences '在句子中循环

    K = K + 1

    '如果句子中的最后一个字符为段落标记则EndChar为段落标记的前一个字符

    If s.Characters(s.Characters.Count) = Chr(13) Then

    EndChar = "[第" & K & "句结束标点为 " & s.Characters(s.Characters.Count - 1) & "]"

    Else

    EndChar = "[第" & K & "句结束标点为 " & s.Characters(s.Characters.Count) & "]"

    End If

    '以空格为分隔符,将结束标点在变量中累加

    MyString = MyString & " " & EndChar

    Next

    End With

    MsgBox "所选内容句子数:" & SenCount & vbCrLf & "结束标点分别为:" & MyString

    End Sub

    代码截图:

    a7f0e9fa0ea7c5538e47d7cd804dc600.png

    由于在程序中大部分我都做了注释,只是再简单的讲解一下:

    上面的程序中需要注意的是对于有选择和没有选择的判断,这里是根据Selection.Type 的值来进行判断的,对于这个值可以有很多种类型,如下:

    wdNoSelection 0 No selection.

    wdSelectionBlock 6 A block selection.

    wdSelectionColumn 4 A column selection.

    wdSelectionFrame 3 A frame selection.

    wdSelectionInlineShape 7 An inline shape selection.

    wdSelectionIP 1 An inline paragraph selection.

    wdSelectionNormal 2 A normal or user-defined selection.

    wdSelectionRow 5 A row selection.

    wdSelectionShape 8 A shape selection.

    这里我用的是wdNoSelection也可以用wdSelectionIP,也可以表示没有任何的选中结果,对于这个词语的解释,后者wdSelectionIP的对应英文解释An inline paragraph selection。目前我还没有看到有那种翻译是较为合适的,好在我们的目的是应用,记住就可以了。

    下面我们看程序的运行:

    9f0f1414d1f3f1758aa00b8694effa76.png

    在上述的文档中选择了部分文字,运行结果:

    1716863cbdc11cefcb9a7101b02dc088.png

    今日内容回向:

    1 WORD中的循环,你是否明白呢?

    2 如何请计算出选择的句子数呢?

    《VBA代码解决方案》终于可以和大家见面了,是我将一些非常实用的VBA内容结集成册,PDF文件,可以从中直接查找到你想要解决问题的思路和方法,可以复制文中的VBA代码直接使用。有需要的朋友微信联络我NZ9668。

    1537844628c3026b6c4ab21e0be63121.png

    664f940a7e214963c82d4a32d0dbe2dd.png

    b61cbf1b5b17f311a92a85d3174ad926.png
    展开全文
  • VBA事件

    千次阅读 2018-12-08 22:45:32
    更改事件可能会使事情变得更容易,但您可以非常快速地结束一个完整的格式化页面。VBA中有两种事件 - 工作表事件 工作簿事件 工作表事件 工作表事件在工作表中发生更改时被触发。 它是通过右键单击工作表选项卡并...

    在VBA中,要手动更改单元格或单元格值范围时,可以触发事件驱动的编程。 更改事件可能会使事情变得更容易,但您可以非常快速地结束一个完整的格式化页面。VBA中有两种事件 -

    • 工作表事件
    • 工作簿事件

    工作表事件

    工作表事件在工作表中发生更改时被触发。 它是通过右键单击工作表选项卡并选择“查看代码”,然后粘贴代码来创建的。

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       MsgBox ("这是一个双击事件触发提示")
    End Sub

    工作簿事件

    工作簿事件总是在工作簿发生更改时触发的。可以通过选择“ThisWorkbook”并从下拉列表中选择“workbook”来添加工作簿事件的代码,如下图所示。

    Private Sub Workbook_NewSheet(ByVal Sh As Object)
       MsgBox "New Sheet Created Successfully"
    End Sub

     

     

     

     

     

    展开全文
  • 函数作用:在多个工作表中查找一个范围内符合某个指定条件的项目对应指定范围加总求和..........................59 '35.函数作用:返回 Column 英文字.......................60 '36.函数作用:查找指定列名的列数.......
  • 记得另存一个文件名称关注公众号,观看视频解析:如果你对于高级筛选还不是很了解,可以参考这个视频链接:高级筛选所有的用法高级筛选真的是很好用的功能,无论是一对多的查找,多对多的查找,范围的条件匹配高级筛选都是...

    db1c9bc66bcfe749434ac802e4966f3b.png

    课件下载:

    https://share.weiyun.com/6Ckc1ivc

    0bf075be8f28f57904a1270d3fd88e9a.png

    下载的时候,记得另存一个文件名称

    关注公众号,观看视频解析:

    588c29da99f73aee0dbb4c1d67e10aa8.png

    如果你对于高级筛选还不是很了解,可以参考这个视频链接:

    高级筛选所有的用法

    高级筛选真的是很好用的功能,

    无论是一对多的查找,多对多的查找,范围的条件匹配

    高级筛选都是很好用的!

    其弊端也很明显:

    当你的条件不断的就发生变换,你就需要:

    不停的去重复选择数据源,条件区域,和最后满足条件放置的位置!

    这一章,我们会加入一点点的VBA人人都能够看懂,

    实现输入条件,选择按钮就可以直接输出结果,不需要轮回操作高级筛选的每一个步骤!

    93299fd5b32417cfdf60cf500d6e11e2.png

    有任何问题,你都可以选择公众号下方的课程搜索按钮,进行课程的查找

    如果你对于VBA感兴趣,想要深度学习,

    可以加入到我的VBA频道:

    e482d810647d684add77f4f072a1cf56.png

    除了基础部分的100多章

    一些优质套表也都是平均每章1到2个小时的教程解析.

    智能考勤表甘特项目管理器
    VBA管理清单VBA菜谱系列
    Listbox延申应用周览时间管理表
    VBA地图系列月览时间管理表
    窗体日历插件

    年事件管理表

    本章视频:记得给老徐赞在看!

    8f61c16287561c3a5ecc00750a9ead38.pngf51687703dcd1ffe02530769f1df8e8d.gif6f54e105aadaa9eaa40be0b4fc9bcada.png

    展开全文
  • Excel_VBA教程

    2014-09-22 11:36:34
    5.从另外一个VBA过程里运行函数过程 94 6.传递参数 95 7.明确参数类型 96 8.按地址和按值传递参数 97 9.使用可选的参数 97 10.定位内置函数 98 11.使用MSGBOX函数 99 12.MSGBOX函数的运行值 103 13.使用INPUTBOX函数...
  • VBA事件(十七)

    2019-09-28 00:14:49
    VBA中,要手动更改单元格或单元格值范围时,可以触发事件驱动的编程。 更改事件可能会使事情变得更容易,但您可以非常快速地结束一个完整的格式化页面。...用户可以选择这些工作表中的每一个,并从下拉列表中...

    在VBA中,要手动更改单元格或单元格值范围时,可以触发事件驱动的编程。 更改事件可能会使事情变得更容易,但您可以非常快速地结束一个完整的格式化页面。VBA中有两种事件 -

    • 工作表事件
    • 工作簿事件

    工作表事件

    工作表事件在工作表中发生更改时被触发。 它是通过右键单击工作表选项卡并选择“查看代码”,然后粘贴代码来创建的。

    用户可以选择这些工作表中的每一个,并从下拉列表中选择“工作表”以获取所有支持的工作表事件的列表。

    以下是可以由用户添加的支持的工作表事件。

    Private Sub Worksheet_Activate() 
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)    
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 
    Private Sub Worksheet_Calculate() 
    Private Sub Worksheet_Change(ByVal Target As Range) 
    Private Sub Worksheet_Deactivate() 
    Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    例子

    在这个示例中,只需要双击之前显示一条消息。

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       MsgBox ("这是一个双击事件触发提示")
    End Sub

    双击任何单元格后,消息框将显示给用户,如以下屏幕截图所示。

    工作簿事件

    工作簿事件总是在工作簿发生更改时触发的。可以通过选择“ThisWorkbook”并从下拉列表中选择“workbook”来添加工作簿事件的代码,如下图所示。

    立即将Workbook_open子过程显示给用户,如以下屏幕截图所示。

     

    以下是可以由用户添加的受支持的工作簿事件。

    Private Sub Workbook_AddinUninstall() 
    Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    Private Sub Workbook_BeforePrint(Cancel As Boolean) 
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
    Private Sub Workbook_Deactivate() 
    Private Sub Workbook_NewSheet(ByVal Sh As Object) 
    Private Sub Workbook_Open() 
    Private Sub Workbook_SheetActivate(ByVal Sh As Object) 
    Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) 
    Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) 
    Private Sub Workbook_SheetCalculate(ByVal Sh As Object) 
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
    Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) 
    Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) 
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 
    Private Sub Workbook_WindowActivate(ByVal Wn As Window) 
    Private Sub Workbook_WindowDeactivate(ByVal Wn As Window) 
    Private Sub Workbook_WindowResize(ByVal Wn As Window)

    例子

    只需要向用户显示一条消息,无论何时创建新的工作表,都会成功创建新的工作表。

    Private Sub Workbook_NewSheet(ByVal Sh As Object)
       MsgBox "New Sheet Created Successfully"
    End Sub

    在创建一个新的excel工作表后,会向用户显示一条消息,如以下屏幕截图所示。

     

     

    转载于:https://www.cnblogs.com/sunyllove/p/11348348.html

    展开全文
  • VBA基础学习之1.11事件

    2020-03-07 23:05:49
    VBA基础学习之事件 在VBA中,要手动更改单元格或单元格值范围时,可以触发事件驱动的编程。 更改事件可能会使事情变得更容易,但您可以非常快速地结束一个完整的格式化页面。...用户可以选择这些工作表中的每一个,...
  • Excel VBA 基础教程

    2019-01-01 18:51:06
    目 录 VBA语言基础...................................................................................................................1 第节 标识符....................................................
  • Excel VBA技巧实例手册

    2016-07-28 22:29:39
    技巧002录制第一个宏 技巧003在VBE中创建宏 1.2 管理宏 技巧004运行宏 技巧005编辑宏 技巧006保存宏 技巧007设置宏的安全性 第2章 使用VBE工具 2.1 设置VBE环境 技巧008设置VBE窗口 技巧009设置VBE的属性 2.2 ...
  • ExcelVBA程序设计.doc

    2011-04-05 21:32:51
    5.从另外一个VBA过程里运行函数过程 94 6.传递参数 95 7.明确参数类型 96 8.按地址和按值传递参数 97 9.使用可选的参数 97 10.定位内置函数 98 11.使用MSGBOX函数 99 12.MSGBOX函数的运行值 103 13.使用INPUTBOX函数...
  • Excel VBA程序设计.doc

    2009-07-06 22:16:12
    5.从另外一个VBA过程里运行函数过程 102 6.传递参数 102 7.明确参数类型 103 8.按地址和按值传递参数 104 9.使用可选的参数 105 10.定位内置函数 106 11.使用MsgBox函数 107 12.MsgBox函数的运行值 111 13.使用...
  • Excel自定义函数VBA

    2013-12-30 20:50:33
    首先Excel当中选择开发工具的visual basic项 2,Visual basic 当中插入...Range 表示一个范围 AddOne 函数名字 '后边的表示注释 .xlsx格式的不支持自定义的函数 .xlsm才能支持自定义的函数,可以通过另存为获取该格式
  • Excel_VBA程序设计.pdf

    热门讨论 2009-08-31 23:05:20
    5.从另外一个VBA过程里运行函数过程 102 6.传递参数 102 7.明确参数类型 103 8.按地址和按值传递参数 104 9.使用可选的参数 105 10.定位内置函数 106 11.使用MsgBox函数 107 12.MsgBox函数的运行值 111 13.使用...
  • 提取数据使用说明:1、底稿数据统一放一个文件夹里,把本模板放在该文件夹外面,在D3单元格填入文件夹名称2、在D4单元格填入要汇总的文件清单在本表的范围3、在D5单元格填入要自动copy过来的sheet名称4、选择数据...
  • EXCEL编程VBA高级教程

    2015-04-16 11:40:55
    VBA语言基础...................................................................................................................1 第节标识符...........................................................
  • 5.从另外一个VBA过程里运行函数过程 90 6.传递参数 90 7.明确参数类型 91 8.按地址和按值传递参数 92 9.使用可选的参数 93 10.定位内置函数 94 11.使用MsgBox函数 95 12.MsgBox函数的运行值 98 13.使用InputBox函数 ...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
     11.1.6 在下一个空单元格中输入一个值  11.1.7 暂停宏的运行以便获得用户选中的单元格区域  11.1.8 计算选中的单元格的数目  11.1.9 确定选中的单元格区域的类型  11.1.10 有效地遍历选中的单元格区域  11.1....
  • 中文版Excel.2007高级VBA编程宝典 2/2

    热门讨论 2012-04-06 16:41:38
     11.1.6 在下一个空单元格中输入一个值  11.1.7 暂停宏的运行以便获得用户选中的单元格区域  11.1.8 计算选中的单元格的数目  11.1.9 确定选中的单元格区域的类型  11.1.10 有效地遍历选中的单元格区域  11.1....
  • 34.在多个工作表中查找一个范围内符合某个指定条件的项目对应指定范围加总求和 35.返回 Column 英文字 36.查找指定列名的列数 37.文字格式的时间(分:秒)转化为数字格式(秒) 38.将"hh:mm:ss"格式的时分秒数转换成秒数...
  • 有时您想在Excel中使用SQL吗... 或者您可以将此函数调用为sub并返回一个数组以指定工作表上的范围(如Access中的查询) 甚至直接使用ctrl + Shift + Enter应用数组公式(请记住首先选择多个单元格->在左上角写...
  • b / c / d用“/”分隔符),或者你可以调用这个函数到sub并返回一个数组来指定范围在表在Access中查询)或者甚至直接应用使用ctrl + Shift + Enter的数组格式(记住首先选择多个单元格 - > write =...
  • 变量只能在指定的范围内起作用或者被调用,这个范围称为变量的作用域。 全局变量 步骤1 按组合键【Alt+F11】打开VBE。 步骤2 选择菜单“插入”“模块”,并输入以下代码。 '声明全局变量 Public strA As ...
  • Before 最近需要使用Excel的绘图功能,但是发现图表的数据不能动态更新数据长度; 我们要实现的功能是,数据更新后,...我们新建一个名称,选择范围是我们要画图的区域: 对应的是值这一列: =OFFSET(Sheet1!$E...
  • 01015获取在Excel主窗口中一个窗口所能占有的最大高度和宽度 01016获取当前打印机名称 01017获取MicrosoftExcel剩余内存 01018获取MicrosoftExcel的总内存 01019获取计算机被Excel占用的内存 01020改变Excel窗口大小...
  • 可是对总表您尽可放心大胆编辑、修改,对数据进行各种处理,比如可以进行排序、筛选、删除等操作,哪怕移动和删除任何一行、一列,删除任何一个单元格也无妨。 3、具有恢复能力 本作品对成绩册和成绩单,虽然采用...
  • 2007-09-21excel里时间(时,分,秒,百分秒)进是否有这个函数,我不太清楚,我用VBA自己编写了一个,两种方式,任你选择,第二种方式,可以根据实际情况调整循环的大小、单元格的位置。如果不用宏,直接用函数tsum()...
  • 或者将原安装目录中的文件全部删除,再安装到另外一个不同的文件目录也可以.或者查阅http://exceltools.5d6d.com/redirect.php?tid=83&goto=lastpost#lastpost ==============================================...
  • cad批量打印

    2012-10-30 11:27:37
    vba制作-源代码完全开放,无任何使用限制或注册。...本工具可以按图块、图层打印,也可以选择图纸范围打印,可指定打印顺序,可以选择文件次打印,支持打印样式、选择图纸尺寸,可打印到文件。
  • arcgis工具

    2012-10-22 22:37:31
    通过指定一个缓冲距离,可以选择落于多边形内部并距离多边形边界一定范围内的所有要素。例如,选择林区内部500米范围内的湖泊。 完全包含(Completely contain) 这种方法选择某一图层上完全包含另一图层上的...
  • 【合并到选区】:将一个单元格的值合到一个区域中去,可以插入到原字符之前也可以插入到原字符之后 【可还原的合并居中】:合并数据时可以保留所有数据,可以随心所欲定义分隔符。还可以随时取消合并,还原所有...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 128
精华内容 51
关键字:

vba选择一个范围