![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
VBA 学习笔记
文章平均质量分 68
VBA 的一些功能、函数、语法等学习资料
风转砂
这个作者很懒,什么都没留下…
展开
-
VBA 类模块学习
VBA 类模块学习1 问题背景2 创建自己的对象3 属性过程4 创建集合4.1 `Collection` 对象创建集合4.2 在类模块中创建集合5 封装工作表模块、图表工作表模块、工作簿模块和用户窗体模块都是类模块。不过,这些模块都是特定类型的类模块,其行为与自己创建的类模块稍有不同。这些特定的模块专门设计来支持与它们相关联的对象,提供对该对象的事件过程的访问,并且如果不删除与之相关的对象,就不能删除相应的对象模块。1 问题背景创建一个 Employee 对象。希望在该对象中存储雇原创 2022-02-24 16:59:33 · 4523 阅读 · 0 评论 -
VBA中,正则表达式的语法介绍
VBA 正则表达式 资料整理创建正则表达式1. 前期引用2. 后期引用正则表达式的属性与方法示例创建正则表达式正则表达式(Regular Expression),常被用来检验、替换符合某个模式(规则)的字符串,在代码中常缩写为 regexp。VBA中并没有直接提供正文表达式对象,需要借助 VBScript 的正则对象。1. 前期引用如果使用前期绑定,那么就需要在VBE中引用如下扩展库。2. 后期引用也可以使用后期绑定的方式创建正则对象,代码如下。Set objRegEx = CreateO原创 2021-01-01 15:12:21 · 2362 阅读 · 2 评论 -
VBA中,正则表达式的元字符
正则表达式中的元字符特殊字符重复字符字符集通配符其它字符运算符优先级 正则表达式由若干个 分支 构成,分支之间用符号 | 相连。从逻辑上讲,分支之间是一种“或”的关系,一个字符串只要与正则表达式中的任何一个分支相匹配,这个字符串就与整个正则表达式相匹配。比如,“第三人称代词”可以用正则表达式表示为 他|她|它|他们|她们|它们 。特殊字符字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,‘n’ 匹配字符 “n”。’\n’ 匹配原创 2021-01-08 14:32:06 · 1308 阅读 · 1 评论 -
VBA 利用字典去重
Sub 利用字典去重() Dim aOld, aNew, Dic '声明数组、字典 Dim i As Long Dim sOld, sNew As String '声明字符串 Set Dic = CreateObject("scripting.dictionary") '创建字典 sOld = "a b c 1 2 1 a c d" '旧字符 aOl...原创 2019-08-13 17:58:47 · 6970 阅读 · 0 评论 -
VBA 文件对话框
[本文转载自 office开发者中心——Application.FileDialog 属性 (Excel)]语法: expression.FileDialog(fileDialogType ) expression,一个代表 Application 对象的变量。 通常写作 Application.filedialog(fileDialogType)参数名称必需/可选数据...原创 2019-08-13 20:31:11 · 4634 阅读 · 0 评论 -
VBA 图片属性如何在表格中插入图片
语法expression.AddPicture( FileName , LinkToFile , SaveWithDocument , Left , Top , Width , Height )expression 一个表示 Shapes 对象的变量。参数参数名称必需/可选数据类型FileName必需String要从中创建图片的文件LinkToFile必需MsoTriState要链接至的文件SaveWithDocument必需MsoTriStat原创 2021-05-30 21:15:00 · 2574 阅读 · 0 评论 -
VBA 字典方法及属性介绍
字典对象相当于一种联合数组,它是由具有唯一性的关键字(Key)和它的项(Item)联合组成VBA字典有6个方法Add , Keys, Items, Exists, Remove, RemoveAllVBA字典有4个属性Count , Key, Item, CompareModeSub dictest() Dim d As Object '声明字典对象,亦可通过声明变体型变量完成声明 &g...转载 2019-08-13 20:05:34 · 10169 阅读 · 0 评论 -
Dir 遍历获取文件夹中的文件地址
Sub 遍历获取文件夹的文件地址() Dim ferP, fp As String 'FolderPath,FilePath Dim i As Long Dim fpA() 'filePathArray ferP = ThisWorkbook.path '定义 ferP = 当前文件所在文...原创 2019-09-09 22:55:15 · 831 阅读 · 0 评论 -
VBA 判断InputBox输入空白内容还是点击了取消的方法
方法介绍,利用 StrPtr() 函数。StrPtr:返回真正的UNICODE字符串缓冲区的地址直接上代码Option ExplicitSub 测试() Dim Key As String Key = InputBox("请输入关键词", "这是一个测试") If StrPtr(Key) = 0 Then MsgBox "点击了取消" ElseIf StrPtr...原创 2019-08-26 09:58:25 · 6124 阅读 · 0 评论 -
图片的裁剪
通过对PictureFormat 对象(微软链接)的以下属性的设置可以裁剪图片或者获取图片的裁剪值。裁剪单位为**“磅”**属性裁剪方向读/写CropTop从上方读/写CropBottom从下方读/写CropLeft从左方读/写CropRight从右方读/写以下代码可以从各个方向裁剪图片10磅 Set myDocument = Wo...原创 2019-08-27 10:54:59 · 365 阅读 · 0 评论 -
inputBox 与 Application.inputBox 的用法与区别。
在输入对话框在VBA中有两种形式,分别是:InputBoxExpression.InputBox二者在大致功能上基本相同,个人认为二者重点差异为:后者有 Type 参数,可以限制输入类型,同时可以引用单元格 ;二者输入时, 空值、取消 的返回值不同。二者语法分别如下:InputBox ( prompt, [title], [default], [xpos], [ypos], ...原创 2019-08-29 16:50:25 · 4888 阅读 · 2 评论 -
VBA 变量的作用域及生命期 —— 未完成
变量声明关键词及其作用域关键词声明位置声明的变量类型作用域补充Public模块顶部全局变量当前工作簿及不同工作簿的模块之间/Public模块顶部全局变量当前工作簿模块之间需在模块顶部添加 Option Private ModulePrivate模块顶部模块级变量模块内的不同过程之间/Dim模块顶部模块级变量模块内的不同过程之间/Dim过程内部过程级变量过程内部/Const模块顶部模块级变量模块内部声明常原创 2021-06-27 10:22:08 · 174 阅读 · 0 评论 -
VBA 自定义函数语法
VBA 自定义函数语法[Optional] [ByVal|ByRef] [ParamArray] varname[()] [As type] [=defaultvalue]关键词必须/可选说明备注Optional可选使用该关键词时表示参数可省略。省略关键词时,可以为其指定的一个默认值。ByValByRef可选按值传递; 按地址传递(默认)ParamArray可选声明数量不确定,但是据有相同性质的参数。 声明该类型参数时,必须放置于最后,并且只能作为一个原创 2021-05-30 01:33:36 · 668 阅读 · 0 评论 -
获取图片所在单元格地址
核心代码 dim shp as Shape Shp.TopLeftCell.Address 如下代码会在图片所在的左上角的首个单元格位置填写 “√”Sub GetPicRngAddress() Dim shp As Shape, ad$ For Each shp In ActiveSheet.Shapes ad = shp.TopLeftCell.Address ...原创 2019-08-27 11:47:44 · 1549 阅读 · 0 评论 -
VBA 数据透视表的创建
方法读/写值类别默认值说明.ColumnGrand读/写BooleanTrue是否启用列汇总.RowGrand读/写BooleanTrue是否启用行汇总.HasAutoFormat读/写BooleanTrue数据透视表在刷新或移动域时自动设置格式.DisplayErrorString读/写BooleanFalse如果数据透视表在有错误的单元格中显示用户自定义的错误字符串,则该值为 True。.ErrorString返回...原创 2021-01-21 15:21:37 · 9067 阅读 · 1 评论 -
对工作表图片进行批量裁剪
以下代码,执行以下动作:以当前选中的图片作为样本,获取图片的裁剪尺寸及边框颜色,然后对当前工作表的全部图片进行相同尺寸的裁剪并设置同样颜色的边框。Sub 批量裁剪图片( ) Dim T, B, L, R As Double Dim shpRng As ShapeRange Dim shp As Shape If TypeName(Selection) = "Pictur...原创 2019-08-27 14:14:07 · 2159 阅读 · 0 评论