2017-05-05 13 views
1

従業員の番号、名前、部門を含むExcelシートに更新ボタンを接続しようとしました。Excel-VBAを使用したユーザーフォーム用の更新ボタン

ユーザーは従業員の番号を入力する必要があります。名前と従業員の部門が表示されます(これはすでに済んでいます)。ユーザーは部門と名前を変更して、問題がどこにあるのかを示す更新ボタン。私は、更新ボタンを押して

毎回、それは「コンパイルエラー:ブロックがなければ、場合終了」と表示されますあなたはIfと同じ行にステートメントを持っている場合は、何もEnd Ifが従うべきではありません

Private Sub btn_Update_Click() 
Dim lastRow As Integer 
Dim empNum As Integer 
Dim rowSelect As Integer 
Dim x As Integer 



If Trim(txt_EmpNo.Value) = vbNullString Then 

MsgBox "The Employee's No cannot be blank!" 

Else 

empNum = txt_EmpNo.Value 
Sheets("LUNCH ORDER").Select 

Set ws = Worksheets("LUNCH ORDER") 
lastRow = ws.Cells(Rows.Count, 3).End(xlUp).Row 

For x = 2 To lastRow 
If ws.Cells(x, 3).Values = empNum Then Rows(x).Select 
End If 
Next 



rowSelect = ActiveCell.Row 



Cells(rowSelect, 2) = Me.txt_Name.Value 
Cells(rowSelect, 3) = Me.txt_Dept.Value 




End If 

End Sub 
+0

2つの回答と質問はありませんので、今後の読者には混乱を招く可能性があります。ありがとう。どのように解決したかを示す場合は、既存のアンケートに基づいて、以下の自己回答が大歓迎です。 – halfer

+1

ああ大丈夫、申し訳ありません、ここは初めてのことです。とにかく私は以下に私の答えを入れました。 –

答えて

2

。その行を削除します。

For x = 2 To lastRow 
    If ws.Cells(x, 3).Values = empNum Then Rows(x).Select 
    End If ' <--------------------------------------------- Remove this line 
Next 

はまた、このタイプミスを修正:

If ws.Cells(x, 3).Value = empNum Then Rows(x).Select 
'     ^^^^^^ not .Values 
+0

Ohh私は、しかし、そこに出てくる別のエラーが出ている "実行時エラー '438':オブジェクトがこのプロパティまたはメソッドをサポートしていない"どのようにそれを解決するためのアイデア? –

+0

@JosephLim答えの追加された部分を見ると、あなたはtypoの '.Values'も持っていました。 –

+0

@JosephLimは条件が満たされないことがありますか? –

1

A.S.H、次のコードのおかげで、今取り組んでいます。

Private Sub btn_Update_Click() 
Dim lastRow As Integer 
Dim empNum As Integer 
Dim rowSelect As Integer 
Dim x As Integer 



If Trim(txt_EmpNo.Value) = vbNullString Then 

MsgBox "The Employee's No cannot be blank!" 

Else 

empNum = txt_EmpNo.Value 
Sheets("LUNCH ORDER").Select 



Set ws = Worksheets("LUNCH ORDER") 
lastRow = ws.Cells(Rows.Count, 2).End(xlUp).Row 



For x = 2 To lastRow 
If ws.Cells(x, 2).Value = empNum Then Rows(x).Select 

Next 



rowSelect = ActiveCell.Row 



Cells(rowSelect, 3) = Me.txt_Name.Value 
Cells(rowSelect, 4) = Me.txt_Dept.Value 




End If 

End Sub 
関連する問題