vba批量替换excel内容(vba批量替换字符串中的字符)
No.1
Excel中查找和替换是一个基本功能,Range对象有一个很好的方法可以解决这个问题。
想要得到这个结果,用到一个方法.Replace
语法:
Range.Replace(What、Replacement、 LookAt、 SearchOrder、 MatchCase、 MatchByte、 SearchFormat、 ReplaceFormat)
看上去十分复杂,其实我们用到的并不是十分多。
具体内容可参考如下图片,详细介绍。
No.2
下面用一个例子来简单说明一下。
本着解决问题的目的,利用一个查找姓名并更改的功能,做了如下表格。
可以看到上图,有一个按钮控件,一个文本框控件,下面是个人信息表 。
单击按钮执行查找姓名,并更改为文本框内容。这处把所有的姓名全改为文本框内容了,为了更好地表达编程意图,这么做也了,当然,在实际应用中只能改一个。
实际上这个功能是查找B3单元格内容,然后把和B3姓名相同的全更改为文本框内容。
按钮代码:
Private Sub ChangeName() Dim s As Worksheet Set s = ThisWorkbook.ActiveSheet Dim r As Range, ro As Long, Rchr As String, xStr As String xStr = vba.Trim(Me.TextBox1.Value)'文本框内容 Set r = s.Range("B3:B10")'定义查找区域 Rchr = r.Item(1)'定义要查找的姓名 With r .Replace Rchr, xStr'替换姓名为文本框内容 With .SpecialCells(12).EntireRow'返回 .Interior.Color = RGB(21, 211, 112) .Borders.Item(xlEdgeBottom).LineStyle = 1 End With With .SpecialCells(12).EntireColumn .Interior.Color = RGB(211, 122, 111) End With End With End Sub
No.3
可以看到程序里还用到一个.Spacialcells方法。
此方法是返回某一类型的Range对象。
在查找过程中返回所有类型的Range,也就是返回R对象的所有单元格,然后再进行一个属性设置。
Spacialcells方法语法:
Range.specialcells(Type, Value)
下图为type枚举类型:
比如要返回空单元格的对象,可以用下面代码:
dim R as Range
set R=Thisworkbook.Activesheet.Range("A1:D10").Specialcells(4)
上面两行代码就功能就是返回当前表A1:D10里空单元格。
找出空单元格之后,就可以做你想做的事情了。
该添加值添加值,该删除就删除。
如对你有帮助欢迎关注、收藏
赞 (0)