[英]How can I find the last colored & empty cell in a row using VBA in Excel 2010?
我是VBA的新手,正在编写一个宏来查找特定行中填充了特定颜色的最后一个空单元格。 基于我到目前为止所阅读和尝试的内容:
Find
重点是使用(有时没有)数据或最后使用的单元格(通常在列中,包含数据)来识别最后一行或列。 Find
方法之前指定内部颜色,因为它可能具有上次使用时的某些其他内部颜色的值(通过代码或用户)。 这是我到目前为止的代码:
Sub FindLastEmptyTurquoiseCellOnRow18()
Dim rngFindColorCell As Range
Range("XFD18").Select
With Application.FindFormat.Interior
.Color = 16763955
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Set rngFindColorCell = Range("A18:XFD18").Find(What:="", After:=Range("XFC18"), _
LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, _
MatchCase:=False, SearchFormat:=True)
rngFindColorCell.Select
End Sub
After参数似乎在我的新手眼中与我想要的搜索方向明显冲突(After表示向右(?), xlPrevious
表示向左移动)。 如果搜索确实必须在向左前进1个单元格之前,我指定了行中倒数第二个单元格。
我也可以将行的搜索限制在前8785列。
我正在尝试最后(这次使用Select
)来确定代码是否正在识别正确的单元格。 正是在这一点上,当我逐步执行代码时,我得到了错误:
运行时错误'91':对象变量或未设置块变量
MsgBox
并将找到的单元格的内部颜色设置为不同的颜色,但也会出错。) 我期待(并且会非常感谢)任何'大师'破解这个小坚果!
好问和布置问题。
If Not rngFindColorCell Is Nothing
(参见下面的新最后一行) XFB18
因为您已经使用了xlPrevious
,然后是XFA18
等(最终回到XFD18
,最后是XFC18
Select
行是不必要的。 xlWhole
macthing整个字符串,而不是当xlPart
(不会在这种情况下,重要) xlFormulas
而不是xlValues
也将匹配隐藏列( xlValues
跳过它们) 码
Sub FindLastEmptyTurquoiseCellOnRow18()
Dim rngFindColorCell As Range
With Application.FindFormat.Interior
.Color = 16763955
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Set rngFindColorCell = Range("A18:XFD18").Find(vbNullString, Range("XFC18"), xlFormulas, xlWhole, xlByRows, xlPrevious, , True)
If Not rngFindColorCell Is Nothing Then
MsgBox "found in " & rngFindColorCell.Address(0, 0)
Else
MsgBox "No matching cells found"
End If
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.