vba如何让指定单元格内容无法更改(如何替换单元格内容)
vba如何让指定单元格内容无法更改(如何替换单元格内容)可以看到上图,有一个按钮控件,一个文本框控件,下面是个人信息表 。本着解决问题的目的,利用一个查找姓名并更改的功能,做了如下表格。看上去十分复杂,其实我们用到的并不是十分多。具体内容可参考如下图片,详细介绍。下面用一个例子来简单说明一下。
No.1Excel中查找和替换是一个基本功能,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
可以看到程序里还用到一个.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里空单元格。
找出空单元格之后,就可以做你想做的事情了。
该添加值添加值,该删除就删除。
如对你有帮助欢迎关注、收藏