Q1:
我有一段程序碼如下:sub 測試()
dim key
key= InputBox("請輸入要找尋的資料!", "提示")
Columns("A:A").Select
Selection.Find(What:=key, After:=ActiveCell).Select
Application.Goto reference:=Selection.Offset(0, 5), Scroll:=True
end sub
Q1:上頭會在找不到時出現執行階段錯誤91,沒有設定物件變數或with區域變數
= =??這是什麼意思???~
'===============================================
Q2:
這程序的目的是想讓搜找A欄內的特定值後到對應位置可是在找不到時,就會出現錯誤,
我上網查了下,有大大回覆必須宣告成物件
只是我不太懂它的語法限制..
因為我在宣告了變數
Dim myRange as object
set myRange = columns("A:A") 或 Set myRange = Range("A:A")
myRange.Find(What:=key, After:=ActiveCell).Select
Application.Goto reference:=Selection.Offset(0, 5), Scroll:=True
執行它會出現執行階段錯誤13:型態不符合
Q2:是因為.Find的方法前面只能用cells的關係?還是說...是其他什麼原因呢?
-------------------------------------------------------
補充修Q2
不知道是不是.find的方法前方的物件有限制什麼條件?
我用錄製巨集,他是採
Cloumns("A:A").select
selection.find(........)
但同樣的我若改成設成物件型態變數,讓物件直接指定為A欄,再用物件名去.find
例如:
Set myRange = columns("A:A")
myRange.find(.....)
這樣就會出現原先講的錯誤
但我若改成
Set myrange = Range("A1:A" & Range("A" & Rows.count).End(xlUp).Row)
myrange.Select
然後再用
myrange.find(.....)
這樣又變成可行..(只是同樣會再找不到資料時三不五時中止)
Q3:
、這裡出現了第三個問題為什麼整欄指派不行,但區域指派就可用.Find
這個 .find 怎麼這麼難搞
'===============================================
因為我搜尋的這段是採錄製後修改,但常常在找不到資料下,就中止程序了
求助達人解惑...感謝~
===============================================
附帶我查得的資料如下
Q:
Cells.Find(What:=InputBox("請輸入要找尋的資料!", "Search"), _ After:=ActiveCell,).Activate |
Set xF = Cells.Find(What:=InputBox("請輸入要找尋的資料!", "Search"), _
After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= False)
If xF Is Nothing Then MsgBox "找不到資料" Else xF.Select
===========================================