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

当我执行这个vba sub时,从variablesTemp1和Search中查找返回的值是单元格的内容,而不是单元格地址的范围variables。

代码在这里:

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 

在声明Range对象之后,您需要使用Set关键字来实例化它。

这是一个很好的和简单的描述: http : //www.excel-easy.com/vba/range-object.html

这说:

声明一个Range对象
您可以使用关键字Dim和Set来声明一个Range对象。

没有Set ,它返回单元格的Value

这个问题的答案详细解释: vba简单范围/对象错误

这里是来自msdn的示例的完整描述: https : //msdn.microsoft.com/en-us/library/office/ff838238.aspx