
vba
关于vba的相关知识
jieru_liu
less is more
展开
-
取消、禁止Office/Excel开机自动新建空白文件
问题:每次开机,Excel总是自动新建一个空白文档,烦死了解决方法:文件 → 选项 → 信任中心 → 信任中心设置→ 选中描述为“用户启动”的项(注意路径位置)→删除→确定。搞定^-^!...原创 2022-05-14 11:38:22 · 1472 阅读 · 0 评论 -
python中通过xlwings判断excel是否存在筛选,并取消筛选
在python中实现excel的筛选原创 2022-03-19 14:00:00 · 3608 阅读 · 0 评论 -
AutoFilter、AutoFilterMode与FilterMode之刨根问底篇
AutoFilter、AutoFilterMode与FilterMode的来龙去脉原创 2022-03-18 22:15:27 · 2186 阅读 · 1 评论 -
无法对多重选择区域执行此操作
excel粘贴报错:无法对多重选择区域执行此操作原创 2022-03-17 20:32:02 · 15481 阅读 · 0 评论 -
Excel无法另存为的解决办法
sub macro() '将当前工作簿 “是否保存” 的属性值该为:否(即未保存) ActiveWorkbook.Saved = FalseEnd Sub原创 2021-12-02 19:53:47 · 2336 阅读 · 0 评论 -
使用vba遍历文件夹,批量修改文件类型
Sub files_saveas() # 定义文件选择框对象 Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFolderPicker) With fd If .Show = -1 Then selected_path = fd.SelectedItems(1) End If End With # 定义原创 2021-10-09 16:57:00 · 1019 阅读 · 0 评论 -
在 VBA 中使用 SQL 处理数据
Sub 使用sql处理数据() Application.ScreenUpdating = False '创建数据库相关对象 Dim Cnn As Object, MyCat As Object Set Cnn = CreateObject("ADODB.Connection") '创建数据库连接 Set MyCat = CreateObject("ADOX.Catalog") '创建 包含描述数据源模式目录的集合 Dim原创 2020-11-02 13:11:01 · 4610 阅读 · 0 评论 -
vba字典的key属性、item属性和keys方法、items方法、add方法
1)key属性: 修改字典中某一键值对的key值2)item属性: 修改字典中某一键值对的item值3)keys方法: 获取字典的所有键4)items方法: 获取字典的所有值5)item属性: 如果 key已存在,则修改其item值;如果不存在,则新增6) add方法: 如果 key已存在,将报错;如果不存在,则新增Sub t() Dim d As Dictionary '定义变量 Set d = New Dictionary '创建对象 '一、获取原创 2021-08-27 15:36:37 · 17936 阅读 · 0 评论 -
如何让excel说话,vba的speak功能
Sub speak() Application.Speech.speak "小鑫鑫, 这周末来干饭呀,哈哈哈" '读取自定义内容 [A1:A5].speak '读取表中【A1:A5】区域的内容End Sub原创 2021-04-16 13:49:02 · 2571 阅读 · 0 评论 -
vba,case中的“逻辑或”、使用“to”匹配数字范围、模糊匹配
Sub case的使用() '1、to的使用:相当于“大于等于,且小于等于”。左右边界都包含 score = 100 Select Case score Case 90 To 100 '等价于[90, 100] MsgBox "优秀" Case 60 To 89 MsgBox "及格" Case Is < 60原创 2021-04-15 10:04:45 · 2994 阅读 · 0 评论 -
vba,窗体的应用系列之窗体显示
窗体显示有两种模式:1、无模式显示: 可以对表格进行操作2、有模式显示: 不可以对表格进行操作原创 2021-03-31 11:26:03 · 6411 阅读 · 0 评论 -
vba,选中带有图片连接的单元格时,自动下载图片
Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error GoTo ErrL With Target If Left(.Value, 8) = "https://" And Right(.Value, 3) = "jpg" Then '如果单元格内容为网址 '添加网络图片,并设置为图片大小位置随单元格变化而变化 ActiveSheet.S原创 2021-03-30 15:55:43 · 1088 阅读 · 0 评论 -
vba正则中,multiline的作用
Multiline:控制字符串为单行还是多行模式单行模式: 只有一个行首,字符串的最前面;一个行末,字符串的最后面多行模式: 每行都有一个行首和行末Mulitiline的设置只会对正则符号:^和$ 有影响Sub 测试() Dim my_str As Variant, mh As Variant, dest$ Set reg = CreateObject("vbscript.regexp") my_str = "这是行首ABC" & Chr(10) &原创 2021-03-30 15:37:34 · 1384 阅读 · 0 评论 -
vba正则中,global属性的使用
global属性:设置是否进行全局匹配Sub 测试() Dim my_str$, mt, mh, sub_str$ Set reg = CreateObject("vbscript.regexp") my_str = "我人民币大写:123656.00。小写:123654.03 " & _ "中介人民币大写:800.36公司日丰人民币大写:36659.32.日韩地晶上 " With reg .Patte原创 2021-03-30 15:15:15 · 1645 阅读 · 0 评论 -
vba中的正则分组:SubMatches的使用
SubMatches:获取匹配到的字符串的所有分组Sub 测试() Dim my_str$, mt, mh, sub_str$ Set reg = CreateObject("vbscript.regexp") my_str = "我人民币大写:123656.00。小写:123654.03 " & _ "中介人民币大写:800.36公司日丰人民币大写:36659.32.日韩地晶上 " With reg原创 2021-03-30 14:58:08 · 4432 阅读 · 1 评论 -
使用 python 执行 vba 代码
import win32com.clientxls=win32com.client.Dispatch("Excel.Application")# 打开工作簿wb = xls.Workbooks.Open(Filename="工作簿.xls") # 工作簿名ret = xls.Application.Run("模块", args) # 第1个参数:模块名; 第2个参数:要执行的模块的参数print ret # ret是模块的返回值,如果有返回值的话# 关闭工作簿wb.Close()w原创 2021-03-05 14:51:09 · 2134 阅读 · 0 评论 -
关于 access 中如何使用 vba语言 判断表是否存在的两种方法
方法一: 通过循环,判断目标表是否存在Function searchTable(TableName As String) As Boolean searchTable = False '默认不存在 Dim tbl As DAO.TableDef For Each tbl In CurrentDb.TableDefs If tbl.Name = TableName Then searchTable = True '如果存在,返回 Ture,原创 2021-01-07 16:41:41 · 2494 阅读 · 0 评论 -
vba 创建带有自动提示的 FileSystemObject 对象,报错:对象变量或 With 变量未设置
Private Sub Workbook_Open() Dim fso As Scripting.FileSystemObject Dim root_path$ root_path = "D:\工资单" '如果 D 盘中不存在文件夹 “工资单”,就创建 If Not fso.FolderExists(root_path) Then fso.CreateFolder root_path End原创 2021-02-26 11:06:43 · 2553 阅读 · 0 评论 -
删除指定文件夹中的目标文件
如图:根据A,B列的数据 得到C列(需要去掉前后空格),然后在文件夹中查找 “C列“ 中的文件并删除Sub 删除目标文件() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim root_path '根文件夹路径 'root_path = "D:\工作\数据类" '根文件夹路径。假设所有文件在 “D:\工作\数据类” 文件夹中 root_pat原创 2021-02-19 11:00:30 · 354 阅读 · 0 评论 -
在 access 中使用 vba 遍历文件夹,批量导入目标表
文件夹导航图 (代码运行背景)Option Compare Database'-------------------------------------------------------------------------------------------' 1、目的:批量导入表' 2、背景:' 根路径:D:\工作\数据类\06进销存\02进销存生成\2020'' 在名为 2020 的文件夹下包含 1-12月 以月份命名(如:10月、5月)的文件夹,以及其他非相关文件夹原创 2021-01-07 16:18:19 · 2042 阅读 · 0 评论 -
vba 之 Worksheet.ProtectContents 与 Workbook.ProtectStructure 的区别
Worksheet.ProtectContents: 工作表的属性。用于判断工作簿中的某张表是否被保护设置工作表保护的方法:Workbook.ProtectStructure: 工作簿的属性。用于判断工作簿的结构是否被保护设置工作簿结构保护的方法:...原创 2020-06-24 17:00:12 · 1359 阅读 · 0 评论 -
vba 之判断工作表是否处于保护状态:Worksheets.ProtectContents
ProtectContents 是工作表的属性,用于判断工作簿中的某张表是否处于保护状态Sub worksheet_ProtectContents() Debug.Print Sheets(1).ProtectContents '判断第一个工作表是否处于保护状态End Sub保护某张工作表的方法: 选中要保护的表,右键选择“保护工作表”...原创 2020-06-24 16:42:01 · 3232 阅读 · 0 评论 -
通过 vba 在 excel 中调用 word
Sub call_word() Dim doc As New Word.Application '前期绑定。使用这种方法,会有自动提示 'Set doc = CreateObject("word.application") '后期绑定。创建 word 对象 doc.Visible = True Set wd = doc.Documents.Add '新建一个 word 空白文档 wd.Paragraphs(1).Range.原创 2020-06-24 15:26:12 · 4245 阅读 · 0 评论 -
解决 vba 报错:要在64位系统上使用,请检查并更新Declare 语句
将错误处的 “Declare”替换成“Declare PtrSafe” 即可原创 2020-06-24 14:38:44 · 21611 阅读 · 8 评论 -
Excel VBA解密教程
写在前面: 如果文件是 xslm 格式,需要先打开Excel文件,另存为 xls 格式具体步骤:1、 首先用普通的文本编辑器(我用的是NotePad++)打开这个文件**( 注意文件类型选 “All types” )2、 在文件里查找 “DPB”,把它改成 “DPx”,保存修改。( 注意大小写 )3、 用 Excel 重新打开这个文件( 弹框点 “是” 即可)**4、按 “Alt + F11” 进入 “Visual Basic” 代码页面。( 对出现的提示弹框点 “确定” 即可 )5原创 2020-06-24 14:14:20 · 2688 阅读 · 0 评论 -
vba报错:不能设置类worksheet的visible属性
错误原因: 工作簿被保护了解决方法: 点击 “审阅” 下的 “保护工作簿”,输入密码 取消保护即可原创 2020-06-24 09:57:42 · 8499 阅读 · 0 评论 -
vba之MergeArea与MergeCells
一、Range.MergeArea 属性,返回包含指定单元格的合并单元格区域,为只读属性。注意:Range 只能为单个单元格Sub about_MergeArea() Dim merge_rng As Range [a1:a3].Merge '合并 [a1:a3] 单元格 Set merge_rng = Range("a2").MergeArea '返回包含 [a2] 的合并单元格区域 merge_rng.Select End Sub二、原创 2020-05-15 14:22:16 · 8440 阅读 · 0 评论 -
vba之AutoFilter、AutoFilterMode与FilterMode
一、AutoFilter:1、Range 的方法,对表中列进行筛选;2、Worksheet 的属性,返回表中的筛选对象Sub about_AutoFilter()' 1、Range.AutoFilter,返回值始终为 True' 1》 语法:Range.AutoFilter(Field, Criteria1, Operator, Criteria2, SubField, VisibleDropDown)' 2》 用途:对指定区域 Range 的 Field 偏移列进行筛选原创 2020-05-15 14:04:12 · 9170 阅读 · 0 评论