避免将属性或方法的名称重新用作变量
将属性或方法的保留名称重新用作你自己的过程和变量的名称通常不被视为最佳实践。
错误的表单 - 虽然以下(严格来说)是合法的,但是工作代码重新使用 Find 方法以及行 ,列和地址属性可能会导致名称歧义的问题/冲突,并且通常很容易混淆。
Option Explicit
Sub find()
Dim row As Long, column As Long
Dim find As String, address As Range
find = "something"
With ThisWorkbook.Worksheets("Sheet1").Cells
Set address = .SpecialCells(xlCellTypeLastCell)
row = .find(what:=find, after:=address).row '< note .row not capitalized
column = .find(what:=find, after:=address).column '< note .column not capitalized
Debug.Print "The first 'something' is in " & .Cells(row, column).address(0, 0)
End With
End Sub
良好的形式 - 将所有保留字重命名为原始的近似但独特的近似值,避免了任何潜在的命名冲突。
Option Explicit
Sub myFind()
Dim rw As Long, col As Long
Dim wht As String, lastCell As Range
wht = "something"
With ThisWorkbook.Worksheets("Sheet1").Cells
Set lastCell = .SpecialCells(xlCellTypeLastCell)
rw = .Find(What:=wht, After:=lastCell).Row '◄ note .Find and .Row
col = .Find(What:=wht, After:=lastCell).Column '◄ .Find and .Column
Debug.Print "The first 'something' is in " & .Cells(rw, col).Address(0, 0)
End With
End Sub
虽然有时你可能想要根据自己的规格有意重写标准方法或属性,但这些情况很少见。在大多数情况下,请远离为自己的构造重用保留名称。