分享

学习VBA,报表做到飞 第一章 入门篇 1.20 Replace语句

 拾叁亿人 2023-04-05 发布于云南

第一章 入门篇

1.20 Replace语句

Replace语句的功能相当于Excel菜单里的“替换”。该语句的语法是这样的:

Range('要替换的区域').Replace(What、Replacement、LookAt、SearchOrder、MatchCase、MatchByte、SearchFormat、ReplaceFormat)

让我们来了解一下Replace的参数:

Replace语句有两个必选参数What、Replacement,其它参数都是可选。

What 查找内容

Replacement 替换内容

LookAt:

xlWhole 整个单元格匹配

xlPart 不要求整个单元格匹配

SearchOrder:

xlByRows 按行搜索

xlByColumns 按列搜索

MatchCase 如果为True,则搜索区分大小写

MatchByte 如果为True,则区分全/半角

SearchFormat 查找格式

ReplaceFormat 替换格式

例句:

00007933

空调

VBA

498720.00

14961.60

00007934

台式电脑

vba

35670.00

1070.10

00012189

音响设备

EXCEL

12420.00

372.60

00014439

空调

EXCEL

6800.00

204.00

00014439

音响设备

语句

6800.00

204.00

00014439

音响设备

循环语句

6800.00

204.00

Sub replace()

Range('a1:e6').replace what:=6800, replacement:=8000

'把表中数值为6800的单元格替换为8000

Range('a1:e6').replace what:='vba',replacement:='学习vba',MatchCase:=True

'把表中的'vba'替换为'学习vba',如果不加MatchCase参数,默认不区分大小写,则'c1'、'c2'单元格的内容都会被替换。加上MatchCase:=True,则只替换'c2'单元格。

Range('a1:e6').replace what:='EXCEL',replacement:='EXCEL报表',matchbyte:=False

'把表中的'EXCEL'替换为'EXCEL报表',其中'c3'单元格为全角。如果不加matchbyte参数,默认区分全/半角,则只替换'c4'单元格。加上matchbyte:=False,不区分全/半角,'c3'、'c4'单元格都会被替换。

Range('a1:e6').replace what:='语句',replacement:='代码',lookat: = xlWhole

'把表中的'语句'替换为'代码'。如果不加lookat参数,默认为不要求整个单元格匹配,则'c5'单元格被替换为'代码','c6'单元格内容会变为'循环代码'。加上lookat: = xlWhole,要求整个单元格匹配,则'c6'单元格内容不会被替换。

End Sub

对于SearchFormat 查找格式和ReplaceFormat 替换格式这两个参数的应用,就相对比较麻烦一些。我们需要先设置好查找格式和替换格式,然后在replace语句里把SearchFormat 查找格式和ReplaceFormat 替换格式都设置为True,就可以进行替换了。

把下表中填充颜色为红色的单元格,替换为填充蓝色,内容不变:

00007933

空调

VBA

498720.00

14961.60

00007934

台式电脑

vba

35670.00

1070.10

00012189

音响设备

EXCEL

12420.00

372.60

00014439

空调

EXCEL

6800.00

204.00

00014439

音响设备

语句

6800.00

204.00

00014439

音响设备

循环语句

6800.00

204.00

Sub replace()


Application.FindFormat.Interior.ColorIndex = 3 '查找格式设置为红色


Application.ReplaceFormat.Interior.ColorIndex = 5 '替换格式设置为蓝色

Range('a1:e6').replace what:='', replacement:='', searchformat:=True, ReplaceFormat:=True

'把填充颜色为红色的单元格替换为蓝色,因为内容不用变化,所以what和replacement参数都为空。

End Sub

替换之后就是这个效果:

00007933

空调

VBA

498720.00

14961.60

00007934

台式电脑

vba

35670.00

1070.10

00012189

音响设备

EXCEL

12420.00

372.60

00014439

空调

EXCEL

6800.00

204.00

00014439

音响设备

语句

6800.00

204.00

00014439

音响设备

循环语句

6800.00

204.00

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多