Excel 单击父板材上的vba按钮后,它会自动跳转到进料器板材

Excel 单击父板材上的vba按钮后,它会自动跳转到进料器板材,excel,vba,Excel,Vba,我在工作表(“NPS”)上指定一个按钮,用于计算和复制另一张工作表(“付款单”)中的数据。我的vba计算和复制正确,但在完成作业后,它会跳转到进料器工作表,即工作表(“付款单”)。我希望父工作表即工作表(“NPS”)保持打开状态。请帮助我查找错误! 我的代码是 Sub NPS() Dim i As Integer Dim LROW As Long Dim LR As Long LROW = Sheets("NPS").Range("C200").End(xlUp).Row LR = Sheet

我在工作表(“NPS”)上指定一个按钮,用于计算和复制另一张工作表(“付款单”)中的数据。我的vba计算和复制正确,但在完成作业后,它会跳转到进料器工作表,即工作表(“付款单”)。我希望父工作表即工作表(“NPS”)保持打开状态。请帮助我查找错误! 我的代码是

Sub NPS()
Dim i As Integer
Dim LROW As Long
Dim LR As Long

LROW = Sheets("NPS").Range("C200").End(xlUp).Row
LR = Sheets("Pay_Slip").Range("B500").End(xlUp).Row

Sheets("Pay_Slip").Unprotect Password:="@"
Sheets("NPS").Unprotect Password:="@"

For i = 5 To LROW
If Len(Sheets("Pay_Slip").Range("B" & i)) = 8 Then
Sheets("NPS").Range("B" & i + 6).Value = Sheets("Pay_Slip").Range("D" & i).Value
Sheets("NPS").Range("C" & i + 6).FormulaR1C1 = _
        "=INDEX(emp,MATCH(RC[-1],NAME,0),MATCH(R9C3,data,0))"
Sheets("NPS").Range("D" & i + 6).Value = Sheets("Pay_Slip").Range("AE" & i).Value
Sheets("NPS").Range("E" & i + 6).Value = Sheets("Pay_Slip").Range("I2:K2").Value
Sheets("NPS").Range("F" & i + 6).Value = Sheets("Pay_Slip").Range("R" & i).Value
Sheets("NPS").Range("G" & i + 6).Value = Sheets("Pay_Slip").Range("AH" & i).Value
Sheets("NPS").Range("H" & i + 6).Value = Sheets("Pay_Slip").Range("AB" & i).Value
Sheets("NPS").Range("I" & i + 6).Value = Sheets("NPS").Range("F" & i + 6).Value + Sheets("NPS").Range("H" & i + 6).Value

Else: Sheets("NPS").Range("B" & i + 6 & ":I" & i + 16).ClearContents

End If
Next i

Sheets("NPS").Range("B" & LROW + 7).Value = "Signature"
Sheets("NPS").Range("B" & LROW + 9).Value = "DDO" & "/" & Range("H7").Value
Sheets("NPS").Range("G" & LROW + 7).Value = "Signature"
Sheets("NPS").Range("G" & LROW + 9).Value = "Principal"

Sheets("Pay_Slip").Protect Password:="@"
Sheets("NPS").Protect Password:="@"
End Sub

您可以使用以下方法将其设置为活动:

Sheets("NPS").Activate

虽然这并不能真正回答“为什么”第二张工作表变为活动状态,但它应该能让您到达目标行。

您的代码对我来说很有效。您是否有任何可能执行的
更改
(或类似)事件?谢谢您的建议