2016-03-15 11 views
1

你好只是一些簡單的幫助就這一問題與.Find method它總是循環回發現裏面有.findnext第一個單元格地址)相同的第一個單元格,現在我得到的錯誤說法範圍類的FindNext方法失敗範圍類的VBS FindNext方法在</p> <p>失敗

任何幫助這裏將不勝感激是我到目前爲止有:

Set objXLApp = CreateObject("Excel.Application") 
Set EffR = objXLApp.Workbooks.Open("C:\Users\Daniel\Desktop\March Eff Report.xlsx") 
objXLApp.Application.Visible = True 
objXLApp.DisplayAlerts= False 
Set CPS = EffR.Sheets(3) 
Set MTDsum = EffR.Sheets(4) 
Set DIMA1 = EffR.Sheets(5) 
Set DIMA2 = EffR.Sheets(6) 
Set CP2 = EffR.Sheets(7) 
Set CP3 = EffR.Sheets(8) 
Set AO500 = EffR.Sheets(9) 
Set AO501 = EffR.Sheets(10) 
DIMA1.Activate 

findMe = "7001030025F" 
Set rSearch = DIMA1.Range("A1") 
Set rFound = rSearch.Find(findMe) 
adrFirst = rFound.Address 
'wscript.echo ""&adrFirst&"" 
rSearch.FindNext(adrFirst) 
+0

你需要'FindNext'的結果存入一個範圍。 –

+0

烏爾的評論也幫助我,因爲它在同一時間是正直的和正確的。感謝您的輸入 – TriniCurry

回答

1

點幾點意見:

  • 您只搜索一個單元格,所以我相信你的代碼應該(也只能找到一個匹配)看着更遠的射程。
  • 你需要迎合沒有找到匹配。
  • 更新後的代碼如下。

代碼

Set rsearch = DIMA1.Range("A1") 

Set rfound = rsearch.Find(findMe) 
If Not rfound is nothing Then 
wscript.echo "found" 
    adrFirst = rfound.Address 
Do 
Set rfound = rsearch.FindNext(rfound) 
Loop While rfound.Address <> adrFirst 
else 
wscript.echo "not found" 
End If 
+0

嘿,對於正在搜索的數據,有不止一次的重複發生,其餘的代碼我知道我可以編寫,但只是這個特定部分不工作「從來沒有使用.findnext」,但我用你寫的和相同的結果。同樣的錯誤 – TriniCurry

+0

所以我只是做了一些修改,就像我提到的第一條評論,我需要列出的範圍,我爲什麼單獨使用「A1」的原因是與範圍「A1」的.find正常地搜索整個表與我的其他腳本,再次感謝你 – TriniCurry

相關問題