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