我有是這樣一個要求:Range.Find()失敗
- 我有從列的數據兩個Excel文件至Q
- 我通過每個行迭代在一個Excel中的每個片材,獲取列A中的值,然後在其他Excel中找到相應表單中的值。
- 如果匹配,我檢查Excel中兩列A,G和J匹配的值。如果它們不匹配,則它們將被記錄在日誌文件(Excel中,其中包含不匹配的矩陣類型表示)。 (還有待執行)
- 如果沒有匹配,我必須再次記錄它們。 (尚未實施)
的代碼是:
For Each workSheet1 In MainWorkBook.Worksheets
Set MainWorksheet = workSheet1
Set SecondaryWorksheet = workSheet1
MainWorksheet.Activate
Cells.Select
Selection.EntireColumn.Hidden = False
Selection.EntireRow.Hidden = False
rowcount = MainWorksheet.Cells(Rows.count, 1).End(xlUp).Row
For i = 3 To rowcount
MainCheckName = Trim(MainWorksheet.Cells(i, "A"))
If (PreviousCheck <> MainCheckName And MainCheckName <> "") Then
SecondaryWorksheet.Activate
rowcount = SecondaryWorksheet.Cells(Rows.count, 1).End(xlUp).Row
SecondaryWorksheet.Range(SecondaryWorksheet.Cells(1, "A"), SecondaryWorksheet.Cells(rowcount, "A")).Select
Set SecondaryCheckName = Selection.Find(what:=MainCheckName, LookAt:=xlWhole)
If Not SecondaryCheckName Is Nothing Then
CheckRow = Selection.Find(what:=MainCheckName, LookAt:=xlWhole).Row
<further process here>
Next Next
現在,我有這行的一個問題:
Set SecondaryCheckName = Selection.Find(what:=MainCheckName, LookAt:=xlWhole)
後處理該活動對一些十張,但我有兩個不同工作簿的工作表中匹配的內容,我得到Nothing
爲Find
函數返回。
什麼是錯,爲什麼這裏的病情會失敗?
我看到你有2個'For's,但只有一個 –
糟糕,忘記在代碼 –
中添加'Next','MainWorksheet'和'SecondaryWorksheet'在外部迭代過程中被設置爲同一個工作表For ..每個...下一個'。怎麼會有什麼區別? – Jeeped