2017-08-18 101 views
0

我想要獲取colum上的值和行上的值。試圖使用MATCH vba excel

我這樣做,它的工作原理:

linha = Application.WorksheetFunction.Match(nome, Sheets(2).Range("a:a"), 0) 

但是,如果我這樣做,它不工作。 Supose是相同的代碼(錯誤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

那你是否有資格與紙基準的範圍對象不因爲工作,你還需要限定帶有圖紙參考的單元格。

嘗試像這樣...

linha2 = Application.WorksheetFunction.Match(nome, Sheets(2).Range(Sheets(2).Cells(1, 1), Sheets(2).Cells(x, 1)), 0) 
+0

感謝你「.Range(Sheets(2).Cells(1,1),Sheets(2).Cells(x,1)」 –

+0

@GabrielLemos不客氣,很高興工作:) – sktneer

0

兩件事情:

如果nome沒有在會報錯的範圍內發現的,所以我們需要一些錯誤處理。

您需要親子關係添加到細胞()的範圍()內:

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 
+0

謝謝 「.Range(表(2).Cells(1,1),表(2).Cells(X,1)」 工作 –