2017-04-25 92 views
-1

我在Excel文件中有兩張工作表,分別是bank_form和Pay_slip。 我正在嘗試編寫vba以檢查工作表Pay_slip的單元格B5中的值/文本是否等於工作表Bank_form的單元格B8中的值/文本。相似的,它將檢查所有值直到Pay_slip頁的最後一行。 但是我的代碼無法正常工作,它總是實現,即它總是閃爍顯示「All employees found」的消息。 請找到我的錯誤。檢查兩個不同工作表中的單元格值

Sub CommandButton1_Click() 
Dim LastRow As Long 
LastRow = Worksheets("Bank_form").Range("B" & Rows.Count).End(xlUp).Row 
LR = Worksheets("Pay_slip").Range("B" & Rows.Count).End(xlUp).Row 

If Worksheets("Pay_slip").Range("B5" & LR).Value = Worksheets("Bank_form").Range("B8" & LastRow) Then 

MsgBox "All Employees Found." 

Worksheets("Bank_form").Range("F" & LastRow + 1).Formula = "=SUM(F8:F" & LastRow & ")" 

Else: MsgBox "Employee(s) missing Please check again!" 

End If 

End Sub 
+0

'工作表(「Pay_slip」),範圍(「B5」和LR).'這並不意味着什麼......你可能想寫這樣對不對?'工作表(「Pay_slip 「).Range(」B「&LR).' – Seb

+0

你的帖子不是c你想檢查「Pay_slip」表中的列b中的所有值是否等於表「Bank_form」中的單元「B8」?或者是什麼 ?在兩張數據之間有3行有問題? –

+0

我想檢查紙張單元格B5的值「Pay_slip =紙張單元格B8的值」Bank_form「,紙張單元格B6的值」Pay_slip =紙張單元格B9的值「Bank_form」,單元格B7的值「Pay_slip =工作表單元格B10的值」Bank_form「等到工作表」Pay_slip「的B列的最後一行到達 –

回答

0
If Worksheets("Pay_slip").Range("B5").Value = Worksheets("Bank_form").Range("B8").Value Then MsgBox "The values are the same" 

我不知道爲什麼你參與你的代碼的行數,但他們是爲了檢查中的值等價於一個特定的細胞只

+0

它將檢查單元格B5是否只是各個工作表的單元格B8,我必須檢查單元格是否B6 = B9,B7 = B10,B8 = B11等等...... –

+0

呃....你的帖子真的錯過了清晰度。爲了達到這個目的,你需要一個For循環或者一個Do循環,但你不會只有在條件簡單的情況下才能實現這一點 – Seb

2

,您將需要一個無用環這樣的事情

Dim i as Long 
For i = 5 to LastRow 'start at B5 
    If Worksheets("Pay_slip").Range("B" & i).Value = Worksheets("Bank_form").Range("B" & i + 3) Then 
    ' ... your other stuff here 

next i 
相關問題