Mrli
别装作很努力,
因为结局不会陪你演戏。
Contacts:
QQ博客园

VBA学习——正则提取单元格指定内容并加粗

2021/12/04 计算机基础知识
Word count: 796 | Reading time: 3min

今天又是女朋友打工人的一天,女朋友有需求,打excel打印出来。由于导出后行距太小,以及答案不明显,因此做了两个处理

  • 每两行之间插入一行
  • 将单元格内(A、xxx)的答案进行加粗

Excel中的宏指的是一段操作过程

VBA 中,过程是一切的开始,几乎所有的代码,都会被写在一个或多个过程里。实际开发中,通常一个过程,建议只完成一个特定的小目标。因此,我们的程序往往会包含多个过程。这就是 VBA 中过程概念存在的一个原因。

VBA 过程以 Sub 语句开始,以 End Sub 语句结束,包含一个或多个语句,完成一个特定的目标。

接受参数的过程基本语法如下:

1
2
3
4
5
6
Sub [过程名]([变量名1] As [数据类型1],...[变量名n] As [数据类型n])
语句1
语句2
...
语句3
End Sub

from : VBA 过程(Sub) 入门教程和实例

功能实现——将单元格内(A、xxx)的答案进行加粗

选择对应的sheet按下alt+F11打开

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub mocro()				'定义宏函数'
Set re = CreateObject("VBScript.RegExp") '创建正则对象, 或者Dim reg As New RegExp'
re.Pattern = "(.*?)"
'行内容'
For Each Rng In Range("A1:A5178")
'字符'
lenstr = Len(Rng)
Set ma = re.Execute(Rng)
For Each m In ma
lenans = Len(m)
For i = 1 To (lenstr - lenans + 1)
tempString = Mid(Rng, i, lenans)
If tempString = m Then
Rng.Characters(i, lenans).Font.Bold = True
End If
Next i
Next m
Next Rng
End Sub

注:执行代码之前需要将光标移动到要执行代码的Sheet中的某个单元格

功能实现——每两行之间插入一行

  1. 添加多余列,对着已有数据从第一行开始i=1开始,每隔一行设置i+2(奇数),比如第三行为5
  2. 超出数据行数部分填入偶数,如2、4、6
  3. 选择这组功能列,进行筛选——升序,扩展选取
  4. 然后就可以看到每行之间就多出来一行了
  5. 再选择导出成pdf,每行之间的间距就变大了

参考

Author: Mrli

Link: https://nymrli.top/2021/12/04/VBA学习——正则提取单元格指定内容并加粗/

Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

< PreviousPost
前后端-实现上传和下载
NextPost >
前端进行网络请求的三种方式
CATALOG
  1. 1. 功能实现——将单元格内(A、xxx)的答案进行加粗
  2. 2. 功能实现——每两行之间插入一行
  3. 3. 参考