如何替换单元格内容,vba代码帮你一步解决

No.1

Excel中查找和替换是一个基本功能,Range对象有一个很好的方法可以解决这个问题 。
如何替换单元格内容,vba代码帮你一步解决

想要得到这个结果,用到一个方法.Replace
语法:
Range.Replace(What、Replacement、 LookAt、 SearchOrder、 MatchCase、 MatchByte、 SearchFormat、 ReplaceFormat)
看上去十分复杂,其实我们用到的并不是十分多 。
具体内容可参考如下图片,详细介绍 。
如何替换单元格内容,vba代码帮你一步解决

No.2

下面用一个例子来简单说明一下 。
本着解决问题的目的 , 利用一个查找姓名并更改的功能 , 做了如下表格 。
如何替换单元格内容,vba代码帮你一步解决

可以看到上图,有一个按钮控件,一个文本框控件,下面是个人信息表。
单击按钮执行查找姓名,并更改为文本框内容 。这处把所有的姓名全改为文本框内容了,为了更好地表达编程意图,这么做也了,当然 , 在实际应用中只能改一个 。
实际上这个功能是查找B3单元格内容,然后把和B3姓名相同的全更改为文本框内容 。
按钮代码:
Private Sub ChangeName()Dim s As WorksheetSet s = ThisWorkbook.ActiveSheetDim r As Range, ro As Long, Rchr As String, xStr As StringxStr = 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 = 1End WithWith .SpecialCells(12).EntireColumn.Interior.Color = RGB(211, 122, 111)End WithEnd WithEnd Sub
如何替换单元格内容,vba代码帮你一步解决

No.3

可以看到程序里还用到一个.Spacialcells方法 。
此方法是返回某一类型的Range对象 。
在查找过程中返回所有类型的Range,也就是返回R对象的所有单元格,然后再进行一个属性设置 。
Spacialcells方法语法:
Range.specialcells(Type, Value)
下图为type枚举类型:
如何替换单元格内容,vba代码帮你一步解决

比如要返回空单元格的对象,可以用下面代码:
dim R as Range
【如何替换单元格内容,vba代码帮你一步解决】set R=Thisworkbook.Activesheet.Range("A1:D10").Specialcells(4)
上面两行代码就功能就是返回当前表A1:D10里空单元格 。
找出空单元格之后,就可以做你想做的事情了 。
该添加值添加值,该删除就删除 。
如对你有帮助欢迎关注、收藏

相关经验推荐