使用:Excel 2007中/ Win 7的定位單元格的值在Excel VBA
首先,我創建了一個子程序找到動態範圍的所謂 'WIP' 工作表:以
Sub GetWIPRange()
Dim WIPrng1 As Range
Dim WIPrng2 As Range
Sheets("WIP").Activate
Set WIPrng1 = Cells.find("*", [a1], , , xlByRows, xlPrevious)
Set WIPrng2 = Cells.find("*", [a1], , , xlByColumns, xlPrevious)
If Not WIPrng1 Is Nothing Then
Set WIPrng3 = Range([a1], Cells(WIPrng1.Row, WIPrng2.Column))
Application.Goto WIPrng3
Else
MsgBox "sheet is blank", vbCritical
End If
End Sub
現在我想上面找到定義的範圍內給定的合同編號:
Sub find()
Dim find As Long
find = Application.WorksheetFunction.Match("545499", Range(WIPrng3.Parent.Name & "!" & WIPrng3.Address), 0)
MsgBox "Found at row : " & find
End Sub
但我從上面的代碼得到的錯誤是:
運行時錯誤「91」: 對象變量未設置塊變量。
- 我該如何解決這個問題,以便它返回我正在尋找的值的行號?
- 是否有一種更有效的方式來使用VBA查找單元格值?例如,如果我有很多工作表,並且我想搜索所有工作表並返回值的特定行號和工作表位置。
非常感謝!
我在模塊的聲明部分定義WIPrng3一些很好的分析。它不應該持續下去嗎?條件語句運行GetWIPRange子例程,但現在我得到了一個不同的錯誤:運行時錯誤1004無法獲取WorksheetFunction類的Match屬性。 – AME
它會一直存在,直到您編輯代碼,然後您的所有持久變量都會被重置。我想如果你一個接一個地運行它,它就會起作用。我在文中提出了一些可能的錯誤,所以檢查一下。 –
色譜柱(「I:I」)。選擇 選擇。找到(What:= x(0),After:= ActiveCell,LookIn:= xlValues,LookAt:= xlPart,SearchOrder:= xlByColumns,SearchDirection:= xlNext,MatchCase:= False,SearchFormat:= False)。激活BKRow = ActiveCell.Row – AME