这段代码给了我一个 424 错误“需要对象”。
Dim playerLocation As Range
Set playerLocation = Sheets("World Map").UsedRange.Find("&").Address
Run Code Online (Sandbox Code Playgroud)
这工作正常
Set playerLocation = Sheets("World Map").UsedRange.Find("&")
Run Code Online (Sandbox Code Playgroud)
但是当我将它们放入直接窗口时:
?Sheets("World Map").UsedRange.Find("&").Address
$T$18
?Sheets("World Map").UsedRange.Find("&")
&
Run Code Online (Sandbox Code Playgroud)
是只有我还是这完全是倒叙?Range 变量不接受一个范围对象吗?但是当我明确地给它一个单元格的地址时,它会产生一个错误。我很困惑。
从Microsoft, Range.Find 方法:
返回值:
一个 Range 对象,表示找到该信息的第一个单元格。
但是,Range.Address 属性:
返回一个字符串值,该值表示宏语言中的范围引用。
也许它的思维的一种方式,是通过使用.Address明确,你问一个字符串。你不是在要求一个 Object (which Range)。如果你是,你会正确地声明你的对象,然后离开.Address.
当然,您始终可以Address从RangeVariable...获取属性Dim findRng as Range // Set findRng = Worksheets(1).Cells.Find("something") // debug.print findRng.Address。
您现在还可以访问所有其他Range属性,因此当我个人需要使用 时Find,我倾向于将其设置为 a Range,因此以后如果我愿意,我不必“向后工作”,例如将单元格加粗等等。
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |