快捷搜索:  汽车  科技

vba如何让指定单元格内容无法更改(如何替换单元格内容)

vba如何让指定单元格内容无法更改(如何替换单元格内容)可以看到上图,有一个按钮控件,一个文本框控件,下面是个人信息表 。本着解决问题的目的,利用一个查找姓名并更改的功能,做了如下表格。看上去十分复杂,其实我们用到的并不是十分多。具体内容可参考如下图片,详细介绍。下面用一个例子来简单说明一下。

No.1

Excel中查找和替换是一个基本功能,Range对象有一个很好的方法可以解决这个问题。

vba如何让指定单元格内容无法更改(如何替换单元格内容)(1)

想要得到这个结果,用到一个方法.Replace

语法:

Range.Replace(What、Replacement、 LookAt、 SearchOrder、 MatchCase、 MatchByte、 SearchFormat、 ReplaceFormat)

看上去十分复杂,其实我们用到的并不是十分多。

具体内容可参考如下图片,详细介绍。

vba如何让指定单元格内容无法更改(如何替换单元格内容)(2)

No.2

下面用一个例子来简单说明一下。

本着解决问题的目的,利用一个查找姓名并更改的功能,做了如下表格。

vba如何让指定单元格内容无法更改(如何替换单元格内容)(3)

可以看到上图,有一个按钮控件,一个文本框控件,下面是个人信息表 。

单击按钮执行查找姓名,并更改为文本框内容。这处把所有的姓名全改为文本框内容了,为了更好地表达编程意图,这么做也了,当然,在实际应用中只能改一个。

实际上这个功能是查找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

vba如何让指定单元格内容无法更改(如何替换单元格内容)(4)

No.3

可以看到程序里还用到一个.Spacialcells方法。

此方法是返回某一类型的Range对象。

在查找过程中返回所有类型的Range,也就是返回R对象的所有单元格,然后再进行一个属性设置。

Spacialcells方法语法:

Range.specialcells(Type Value)

下图为type枚举类型:

vba如何让指定单元格内容无法更改(如何替换单元格内容)(5)

比如要返回空单元格的对象,可以用下面代码:

dim R as Range

set R=Thisworkbook.Activesheet.Range("A1:D10").Specialcells(4)

上面两行代码就功能就是返回当前表A1:D10里空单元格。

找出空单元格之后,就可以做你想做的事情了。

该添加值添加值,该删除就删除。

如对你有帮助欢迎关注、收藏

猜您喜欢: