vba中查找下一个 '不能取得 rang 的findnext属性是怎么回事?

PublicSubFindMe(strToFindAsString)DimrngCAsRange'对象DimFirstAddressAsString'起始位置Dimint... Public Sub FindMe(strToFind As String)
Dim rngC As Range '对象
Dim FirstAddress As String '起始位置
Dim intS As Integer '保存位置
Dim wSht As Worksheet
Application.ScreenUpdating = False '关闭刷新
intS = 1

With xlsheet.UsedRange '' 选择表销售汇总表中的使用范围
Set rngC = .Find(what:=strToFind, LookAt:=xlWhole) 'XlLookAt 常量之一:xlPartXlLookAt 常量之一:xlPart (是部分匹配 )或 xlWhole(是完全匹配)。
If Not rngC Is Nothing Then
FirstAddress = rngC.Address
Do
rngC.EntireRow.Delete Shift:=xlUp
intS = intS + 1
Set rngC = .FindNext(rngC) '查找下一个 '不能取得 rang 的findnext属性是怎么回事????
Loop While Not rngC Is Nothing And rngC.Address <> FirstAddress
End If
End With
Application.ScreenUpdating = True '开启刷新
End Sub
展开
 我来答
chixun99
2011-10-22 · TA获得超过706个赞
知道小有建树答主
回答量:464
采纳率:87%
帮助的人:167万
展开全部
rngC.EntireRow.Delete Shift:=xlUp
这句已经把rngC整行删除了,所以rngC为空了,怎么能引用该行呢?
应改为
dim ro as long
ro=rngC.row
rngC.EntireRow.Delete Shift:=xlUp
set rngC=range("a" & ro-1)
……
后边直接用你原代码。
更多追问追答
追问
上面的“a"是什么?
追答
其实是把a列的ro-1行单元格指针重新赋给rngC
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式