2017-04-25 89 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 
相关问题