我是新手VBA程序员,正在编写一个宏来查找特定行中最后一个填有特定颜色的空单元格。根据我目前的阅读和尝试:
在我这个新手的眼中,After参数似乎与我想要的搜索方向存在明显冲突(After指向右侧(?),而xlPrevious则表示向左移动)。如果确实需要在继续向左移动之前从右边的第一个单元格开始搜索,则应该指定行中倒数第二个单元格。
此外,我还可以将对该行的搜索限制为前8785列。
最后(这次使用Select),我试图确定代码是否识别了正确的单元格。在通过代码时,我遇到了错误:
“运行时错误'91':对象变量或 With 块变量未设置”
1. 我该如何确定代码是否识别了正确的单元格?(我已尝试过MsgBox和将找到的单元格的内部颜色设为不同的颜色,但也会出现错误。) 2. 代码中是否存在导致其无法识别正确单元格的错误? 3. 我应该使用其他方法来代替查找方法吗?
期待(并非常感谢)任何可以解决这个小问题的“大师”!
- 当试图确定最后一个单元格/行/列时,最好从底部或右侧开始。
- 使用查找方法比使用循环更快。
- 关于(因此使用)
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则表示向左移动)。如果确实需要在继续向左移动之前从右边的第一个单元格开始搜索,则应该指定行中倒数第二个单元格。
此外,我还可以将对该行的搜索限制为前8785列。
最后(这次使用Select),我试图确定代码是否识别了正确的单元格。在通过代码时,我遇到了错误:
“运行时错误'91':对象变量或 With 块变量未设置”
1. 我该如何确定代码是否识别了正确的单元格?(我已尝试过MsgBox和将找到的单元格的内部颜色设为不同的颜色,但也会出现错误。) 2. 代码中是否存在导致其无法识别正确单元格的错误? 3. 我应该使用其他方法来代替查找方法吗?
期待(并非常感谢)任何可以解决这个小问题的“大师”!