excel 2010 vba“;查找“;函数返回内容

excel 2010 vba“;查找“;函数返回内容,excel,vba,function,find,Excel,Vba,Function,Find,当我执行这个vba子程序时,变量Temp1和Search中的find返回的值是单元格的内容,而不是带有单元格地址的范围变量 代码如下: Sub updateFDFList(Fname As String) ' Check for worksheet existence 'last filled row Dim lastLine As Long lastLine = Worksheets("FDFFiles").Range("A" & Rows.Coun

当我执行这个vba子程序时,变量Temp1和Search中的find返回的值是单元格的内容,而不是带有单元格地址的范围变量

代码如下:

Sub updateFDFList(Fname As String)    
   '  Check for worksheet existence

   'last filled row
   Dim lastLine As Long
   lastLine = Worksheets("FDFFiles").Range("A" & Rows.Count).End(xlUp).row

   If lastLine = 1 Then
     'List Is Empty
     Worksheets("FDFFiles").Cells(2, 1).Value = Fname
     Worksheets("FDFFiles").Cells(2, 2).Value = "No"
  Else
     'Search column A for match
     Dim Search As Range
     S1 = "A2:A" & lastLine
     With Range(S1)
        Temp1 = .Find(Fname)
        Search = .Find(Fname, LookAt:=xlWhole, MatchCase:=True)
        If Search Is Nothing Then
           Dim newLine
           newLine = lastLine + 1
           Worksheets("FDFFiles").Cells(newLine, 1).Value = Fname
           Worksheets("FDFFiles").Cells(newLine, 2).Value = "No"
        End If
      End With
   End If
End Sub

声明
范围
对象后,需要使用
Set
关键字对其进行实例化

下面是一个很好的简单描述:

上面说:

声明范围对象
可以使用关键字Dim和Set来声明范围对象

如果没有
集合
,它将返回单元格的

这个问题的答案详细解释了这一点:


下面是msdn示例的完整描述:

您需要设置范围对象:
Set Search=.Find(Fname,LookAt:=xlWhole,MatchCase:=True)