我正在尝试在列上获取值和行上的值。
我做了这个并且有效:
linha = Application.WorksheetFunction.Match(nome, Sheets(2).Range("a:a"), 0)
但如果我这样做,它就行不通。用作相同的代码(错误1004)
x = Sheets(2).Cells(Rows.Count, 1).End(xlUp).Row
linha2 = Application.WorksheetFunction.Match(nome, Sheets(2).Range(Cells(1, 1), Cells(x, 1)), 0)
答案 0 :(得分:1)
两件事:
如果在范围内找不到nome
则会出错,所以我们需要一些错误处理。
您需要将父项添加到Range()中的Cells():
Dim linha2 As Long
Dim x As Long
linha2 = 0
x = Sheets(2).Cells(Rows.Count, 1).End(xlUp).Row
On Error Resume Next
linha2 = Application.WorksheetFunction.Match(nome, Sheets(2).Range(Sheets(2).Cells(1, 1), Sheets(2).Cells(x, 1)), 0)
On Error GoTo 0
If linha2 = 0 Then
MsgBox nome & " not found in range"
Else
'do what you want with linha2
End If
答案 1 :(得分:1)
这不起作用,因为如果使用Sheet引用限定Range对象,则还需要使用Sheet引用限定Cells。
尝试这样......
linha2 = Application.WorksheetFunction.Match(nome, Sheets(2).Range(Sheets(2).Cells(1, 1), Sheets(2).Cells(x, 1)), 0)