神奇的BI

点滴知识分享

VBA之正则表达式(11)-- 添加千分位(3/3)

上一篇《添加千分位(2/3)》博文讲解了实现添加千分位功能的正则表达式如下:((\.\d+[\w\W]*?)*?\d)(?=(\d{3})+(\D|$)),如果小数位于段落的最后,那么匹配结果就会有问题,可以采用添加后缀构建字符串序列的方式来处理。

2019-05-04 00:09:21

阅读数 28

评论数 0

VBA之正则表达式(10)-- 添加千分位(2/3)

上一篇《添加千分位》博文讲到,简单合并正则表达式无法实现想要的效果,问题在于小数部分数字。这里的核心是如何消耗掉小数部分的数字,不被捕获,可以实现添加千分位功能的正则表达式如下:((\.\d+[\w\W]*?)*?\d)(?=(\d{3})+(\D|$))。

2019-05-03 23:42:03

阅读数 30

评论数 0

VBA之正则表达式(9)-- 添加千分位(1/3)

环视的一个经典应用就是添加千分位,在正则表达式中有如下几种环视(断言),对于整数和小数分别创建正则表达式添加千分位。

2019-05-03 22:22:45

阅读数 39

评论数 0

VBA之正则表达式(8)-- 重复字符分组

实例需求:数据保存在A列中,需要将其中重复字符分拆后,提取后续的列中,为简化示例代码,只考虑小写英文字符。 这个需要也并不复杂,用VBA代码逐个判断字符和其前后的字符集可以区分每组,高手可以写出递归调用过程。我们还是来看一下正则如何处理这种问题。 Sub RegExpDemo() Dim...

2019-05-01 11:03:09

阅读数 43

评论数 0

VBA之正则表达式(7)-- 乾坤大挪移(数据整理)

实例需求:数据保存在A列中,数据组之间使用全角逗号分隔,重整后需要将每组数据开始的圆括号部分移动到末尾,并合并相同的全角方括号内容。貌似这个需要有些拗口,实际效果见B列。

2019-04-25 01:59:22

阅读数 38

评论数 0

非规则合并单元格内容合并

实例需求:对于A列的非规则合并单元,在B列中合并其内容。 虽然在无数经典图书和文章中都告诫大家,合并单元格是数据分析的绊脚石,但是仍有无数数据分析行业的“烈士”仍然前赴后继的继续跳进这个广为人知的坑。无论如何,既然已经存在这样的数据表了,如何处理呢? 办公室的小姐姐遇到这样的难题,肯定有自称电脑...

2019-04-25 00:34:37

阅读数 21

评论数 0

工作表单元格区域另存为图片

实例需求:工作表中的表格内容(A1:C8)另存为图片。 这个很难吗?确实不难。一定要用VBA吗?不一定呦。先来看看如下操作,在工作表中选中相应的单元格区域,依次点击【开始】选项卡的【复制】下拉按钮->【复制为图片】命令;然后打开图片编辑器,粘贴图片;另存为图片文件。 貌似这个操作不...

2019-04-25 00:14:56

阅读数 25

评论数 0

VBA之正则表达式(6)-- 设置音标格式

实例需求:数据保存在A列中,需要对其中音标部分进行下划线标注,如C列所示,匹配这样的非典型字符,正则表达式是最佳选择。 示例代码如下。 Sub RegExpDemo() Dim strTxt As String Dim objRegEx As Object, objMatch A...

2019-04-24 23:54:43

阅读数 26

评论数 0

VBA之正则表达式(5)-- 中文字符

CJK字符集中从0x4E00到0x9FA5 的连续区域,包含了 20902 个来自于中国、韩国、日本的汉字,涵盖了多数中文字符,可以说CJK是GB2312-80和BIG5等字符集的超集。一般情况下使用`[一-龥]`匹配汉字就足够了。由于输入龥字比较麻烦,直接使用16进制的字符编码`[\u4e00-...

2019-03-10 11:07:46

阅读数 72

评论数 0

VBA之正则表达式(4)-- 提取日期和金额

实例需求:数据保存在A列中,需要将其中的日期和金额分别提取至B列和C列。其中日期也两种不同格式,金额可能包含小数点、千分符和货币标识。 示例代码如下。 Sub RegExp_Date_Num() Dim Res() Dim objRegEx As Object Dim o...

2019-03-09 14:49:00

阅读数 222

评论数 0

VBA之正则表达式(3)-- 特殊公式计算

实例需求:数据保存在B列,其格式为规格1*数量1 + 规格2*数量2 + ...,现在需要统计数量总和,如C列所示。例如B3中明细为100*3+115*1对应的包装个数就是3+1。 示例代码如下。 Sub RegExpDemo() Dim strTxt As String Dim...

2019-03-04 05:35:25

阅读数 79

评论数 0

VBA之正则表达式(2)-- 批量修改公式

实例需求:数据保存在F列(公式,判断条件,whatever),需要在每个单元格引用之前添加A列指定的工作表名称+!,结果如H列所示,对于F16中的公式,由于I49已经指定工作表,所以此单元格不需要再处理,核心问题是如何定位单元格引用。 示例代码如下。 Sub RegExpDemoReplace(...

2019-03-04 04:05:17

阅读数 91

评论数 0

VBA之正则表达式(1)-- 基础篇

正则表达式(Regular Expression),常被用来检验、替换符合某个模式(规则)的字符串,在代码中常缩写为regexp。 VBA中并没有直接提供正文表达式对象,需要借助VBScript的正则对象。如果使用前期绑定,那么就需要在VBE中引用如下扩展库。 使用如下代码可以利用后期绑定的方式创...

2019-03-03 15:06:26

阅读数 188

评论数 0

不打开Excel文件读取工作表名(ADOX)

经常会遇到网友提问,如何实现在不打开Excel工作簿文件的前提下,读取其中的工作表名称。说实话,我不太理解这个需要应用的场景,但是我相信存在的就是合理的,既然有人提问,可能就有其应用的场景。 常规实现思路是障眼法,其实是个欺骗的方法,工作簿文件被打开了,但是用户看不到而已。代码如下。 Sub ge...

2019-03-03 01:13:37

阅读数 140

评论数 0

VBA解析JSON数据(5)--JavaScript回写Excel

在上一篇博客【VBA解析JSON数据(4)–JavaScript进阶】中利用JavaScript代码实现读取JSON数据KEY和VALUE的功能,但是还有些繁琐。JavaScript代码读取,然后在VBA去写入,其实JavaScript也是很强大的,完全可以直接操作Exce单元格写入数据。 示例J...

2019-02-24 04:48:18

阅读数 234

评论数 0

VBA解析JSON数据(4)--JavaScript进阶

在上一篇博客【VBA解析JSON数据(3)–JavaScript】讲VBA无法直接获取Variant/Object/JScriptTypeInfo对象中的Key,这个难题如何解决呢? 解铃还须系铃人,既然是JavaScript的对象,那么自然还是需要在JavaScript中寻求解决方法。 示例JS...

2019-02-20 15:06:18

阅读数 172

评论数 0

VBA解析JSON数据(3)--JavaScript

既然JSON来自于JavaScript,那么用JS想必可以更方便的解析JSON,非常幸运的是VBA中可以使用JS。 示例JSON数据如下所示。 { "applySn": "粤G妆网备字...

2019-02-19 10:57:31

阅读数 177

评论数 0

VBA解析JSON数据(2)--正则表达式

上一篇博客【VBA解析JSON数据(1)】讲到过:JSON 本质是一个字符串(由花括号{}包裹起来),解析JSON数据其实就是处理字符串,那么大家肯定会想起字符处理的神奇–正则表达式。 示例JSON数据如下所示。 { &q...

2019-02-18 11:30:15

阅读数 101

评论数 0

VBA解析JSON数据(1)-- Split函数

什么是JSON? JSON(JavaScript Object Notation) 是一种及其轻量级的数据交换格式,它是 ECMAScript (欧洲计算机协会制定的JavaScript规范)的一个子集,它使用完全独立于任何编程语言的文本格式来表示数据。 由于JSON天然具备了简洁和清晰的层次结构...

2019-02-16 07:20:48

阅读数 146

评论数 0

Excel工作表中定位最后单元格(FIND方法)

前一篇博客讲解了如何使用END属性最后单元格。 Excel工作表中定位最后单元格(END属性) 在VBA中还有其他的方法可以用来定位最后单元格。工作表中示例数据如下图所示,注意其中A4为空,A6至A7单元格看似空白,其实是有内容的,A6为零长度公式,A7为空格,A8为前缀字符。 示例代码如下...

2019-02-06 06:02:24

阅读数 27

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭