2017-05-16 7 views
0

別のシート( "Pay_Slip")からデータを計算してコピーするためにボタン( "NPS")を割り当てます。私のVBAは正しく計算してコピーしますが、仕事をした後はフィーダーシート、つまりシート(「Pay_Slip」)にジャンプします。私は親のシート、すなわちシートは( 'NPS」)開いたままであることをしたいエラーを見つけるために私を助けて 私のコードは親シート上のvbaボタンをクリックすると、自動的にフィーダーシートにジャンプします。

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 
+0

あなたのコードは私にとってはうまくいきます。実行している? – YowE3K

答えて

0

ですさてあなたは、このメソッドを使用して、アクティブに設定することができます。!

Sheets("NPS").Activate 

2枚目のシートがアクティブになった理由は本当に「理由」とは言えませんが、それはゴールラインに到達するはずです

+0

提案ありがとう –

関連する問題