快速填充表格中的空单元格 实例需求:工作表中的表格起始行不确定,表格行数不确定,现需要将第一列的空单元格填充当前的日期。解决这个问题有两个核心知识点:1. 定位表格2. 定位空单元格这种表格在VBA对象模型中属于`ListObject`,并没有`Table`对象,这是一个很大VBA初学者容易踩的坑,知道了这个知识点就容易处理了。......
VBA之正则表达式(35)-- 提取年份 实例需求:提取文字中的4位数字年份(19xx或者20xx),文字中包含其他的数字,例如多余4位的:0749345,非年份数字:H-1803F。示例代码如下。【代码解析】第4行代码创建正则表达式对象。第5行代码设置全局匹配。第6行代码设置匹配模式。第7行代码读取A1单元格的内容。第9行代码判断是否匹配成功。第10~12行代码循环处理匹配结果。第11行代码输出匹配值。通过观察发现年份字符有的在圆括号中,有的在方括号中,有的没有括号,因此不能使用此特征。无论是否有括号,年份前后都分别有一个非数字字
VBA遍历字典对象中独门秘籍 看到这个标题,相信读者肯定非常不屑的任务我在故弄玄虚,客官莫急,我说说你听听,肯定会有新故事。字典对象是VBA中常用的对象之一,对于这种这种对象通常用两种绑定方式:前期绑定和后期绑定。前期绑定需要在VBE中先引用相关扩展库,前期绑定的优势在于书写代码时可以智能提升相关属性和方法。后期绑定使用CreateObject函数创建相关对象,后期绑定的优势在于,代码发布给用户后,用户无需引用相关扩展库,就可以直接运行代码。...
间隔色标记相同数据行 实例需求:如果D列相邻单元格内容相同,并且对应的E列单元格内容也相同,并且D列不为空,那么D列、E列和G列相应行使用间隔颜色进行标记,如下图所示。示例代码如下。Sub demo() lst = [a1].End(xlDown).Row arr = Range("d1:d" & lst) Range("b3:L" & lst).Interior.Color = xlNone Set dic = CreateObject("scripting.diction
Evaluate自定义公式替换参数 实例需求:批号列包含L、W、H,公式列为计算公式,现需要计算“结果”列。批号列为11位数字,其格式为:LLLLWWxxHHH,其xx为填充位。示例代码如下。Sub demo() Dim arr, L, W, H, Rng Set Rng = [a1].CurrentRegion arr = Rng.Value lst = UBound(arr) For i = 2 To lst L = Left(arr(i, 1), 4) W
拷贝合并单元格时保留格式 Excel中的合并单元格是个很奇葩的功能,有的用户非常喜欢这个功能,但是合并单元格的功能有时差强人意,处理起来非常麻烦,从数据处理的角度考虑,不推荐使用合并单元格。既然Excel提供了合并单元格功能,那么用户就可能会使用这个功能,例如A1:B4为合并单元格区域,其中的文字内容具有不同的格式,现在需要将其内容和格式拷贝到D1单元格,目标区域也是一个合并单元格区域,使用Excel的拷贝与粘贴,只能把文字拷贝过去,字体格式丢失了,如下图所示。Sub CopyMerge(srcCel As Range, de
Excel单元格区域快速导出为PDF 将Excel工作簿转换为PDF,可以使用“另存为”,也可以使用打印至虚拟PDF打印机。将Excel工作表转换为PDF,可以使用打印至虚拟PDF打印机。如何将单元格区域导出为PDF呢?设置打印区域,打印至虚拟PDF打印机,同样可以实现。但是这个方法太绕了,可以使用更简单的方法。也许读者知道ExportAsFixedFormat可以将工作簿转换为PDF,殊不知Range对象也有ExportAsFixedFormat方法。示例代码如下。Sub Demo() file_pdf = ThisWor
VBA之正则表达式(34)-- 提取照片规格 实例需求:按照指定规则从A数据提取相应的规格至B和C列,示例数据如下所示。示例代码如下。Sub Demo() Dim regExp As Object Dim aRes, arr Set regExp = CreateObject("vbscript.regExp") regExp.Global = True regExp.Pattern = "([\d\.]+)x(\d+(\.\d+)*)" arr = [a1].CurrentRegion.Value
VBA之正则表达式(33)-- 网页表格提取数据 实例需求:示例数据如下所示。```电力变压器DL/T 1539-20161```从示例数据提取名称、规格和数量>电力变压器>DL/T 1539-2016>1
嵌套字典统计非重复日期 示例数据如A列和B列所示,现在需要统计项目编号的不重复日期次数。声明一下,这个问题其实完全不需要使用VBA代码,数据透视表和公式实现起来都更直接。这个主题来自于一个网友的提问,希望研究如何使用VBA中的字典解决此问题。
如何为文件夹选择对话框指定缺省目录 想必大家都已经知道VBA中`Application.FileDialog(msoFileDialogFolderPicker).Show`可以实现目录选择对话框,本文解释另一种实现方式 -- Shell对话框。
【增强版】快速判断工作簿中是否存在指定工作表 《快速判断工作簿中是否存在指定工作表》介绍了两种方法实现判断工作表是否存在与工作簿中,最近发现有更简单的方法实现,在这里和大家分享一下。示例代码如下。Function blnSheetExist(ByVal strSht As String) As Boolean blnSheetExist = (TypeName(Application.Evaluate(strSht & "!A1")) = "Range")End FunctionSub Demo() Dim aSht