2016-11-04 53 views
0

我有兩個不同的工作簿,我想比較兩個工作簿的第一列(A),並獲取列表框中添加的東西(他們不存在於工作簿1表1的列A中)。我寫了一個代碼,我的問題是我的代碼比較沒有比較正確的東西。如果有人能幫助我,我會很開心。如何比較兩個不同的工作簿的列A excel vba

Sub Bouton1_Cliquer() 


Dim i As Long, lastA As Long, lastB As Long 

Dim compare As Variant 

Range("A:A").ClearFormats 

Dim sh1 As Worksheet 

Dim wkb As Workbook 

Set wkb = Workbooks.Open("C:\Users\ZAGLIZ\Documents\Classeur1.xltm") 

Set sh1 = wkb.Sheets("Feuil1") 

lastA = Range("A65536").End(xlUp).Row 

lastB = Range("B65536").End(xlUp).Row 

For i = 2 To lastA 

    compare = Application.Match(Range("A" & i), sh1.Range("B2" & lastB), 0) 

     If IsError(compare) Then 

UserForm1.ListBox1.AddItem "Libellé : " & Range("A" & i) & " du montant " & 

Range("C" & i) & " est ajouté !" 

     End If 
Next i 

UserForm1.Show 

End Sub 

回答

0

我們可以在這個問題的說明和代碼中使用多一點的清晰度似乎有點矛盾,「不比較正確的事情是不是真的有足夠的描述了這個問題。根據代碼,您是按照說明或列a到列b比較兩張表中的列a嗎?我會盡力爲您提供一個答案:

- 特別聲明並使用您想要使用的書籍/工作表的名稱,您只需參考多個工作時間段的工作範圍牀單和可能造成因您的按鈕位於

問題 - sh1.Range("B2" & lastB)沒有做什麼你認爲,它應該是sh1.Range("B2:B" & lastB)(如果它應該是列b)

- 這將只檢查「一「,並且從您的問題中不清楚您是否打算/正在檢查右頁中的缺失值。您可能需要進行第二次匹配以檢查其他方式不存在的事情,或者您可能希望切換邏輯以檢查另一張紙片

編輯:根據您的評論嘗試下面的代碼,將它在一個模塊,並從您的按鈕單擊事件調用的程序名,以避免歧義,我已經改變了一些聲明的名字,因爲他們混淆的宗旨:

Sub ImInAModule() 

Dim i As Long, Sheet1Last As Long, Sheet2Last As Long 

Dim compare As Variant 

Dim origBook As Workbook 

Dim checkBook As Workbook 

Set origBook = ActiveWorkbook 

origBook.Sheets(1).Range("A:A").ClearFormats 

Set checkBook = Workbooks.Open("C:\Users\ZAGLIZ\Documents\Classeur1.xltm") 

Sheet1Last = origBook.Sheets(1).Range("A65536").End(xlUp).Row 

Sheet2Last = checkBook.Sheets(1).Range("A65536").End(xlUp).Row 

For i = 2 To Sheet1Last 

compare = Application.Match(origBook.Sheets(1).Range("A" & i), checkBook.Sheets(1).Range("A2:A" & Sheet2Last), 0) 

    If IsError(compare) Then 
UserForm1.ListBox1.AddItem "Libellé : " & origBook.Sheets(1).Range("A" & i) & " du montant " & origBook.Sheets(1).Range("C" & i) & " est ajouté !" 

    End If 
Next i 

UserForm1.Show 

End Sub 
+0

感謝您的評論,我想比較兩張表中的列a,這兩張表在不同的工作簿中,我需要看到附加的東西(指的是它們不存在於表1中,而它們存在於表2中)。 – Yassine

+0

好的,看看我的編輯,這是檢查您的原始工作表(其中的按鈕)中的所有內容都存在於您正在加載的其他工作表中,以及它未添加到列表中的哪個工作表中。 –

+0

非常感謝你的兄弟,它工作得很好 – Yassine

相關問題