我尝试使用range.Find在另一张包含前一张表格中的字符串输入的工作表中查找单元格(我在表格中搜索列标题,因此我赢了'如果列被移动,我必须更新我的宏)。我使用下面的函数,但我总是得到一个错误,说明对象是必需的。我已经看过类似的主题并尝试了他们的方法,但对他们有用的东西并不适合我。如何使用Range.Find查找列标题位于不同工作表中的单元格?以下是我使用的代码:
Function FindColumn(ByVal name as String) As Range
'cds is the other worksheet I need to find the column header in
Set FindColumn = cds.Range("A1:AA1").Find(name)
If FindColumn Is Nothing Then MsgBox(name & " Not Found!")
Exit Function
End Function
答案 0 :(得分:0)
cds
似乎是Nothing
,这可能会导致该错误。 cds
是否在代码中的其他位置分配了工作表对象?如果是这样,那个变量的范围是什么?如果它不是模块或公共的,那就可以解释它。
如果是模块/公共,请确保在之前分配变量cds
以调用该函数。
如果它是一个过程级变量,则需要将其传递给函数,如:
FindColumn "columnname", cds
修改函数以接受这个附加参数:
Function FindColumn(byVal name as String, cds as Worksheet)