2017-05-05 41 views
1

所以我試圖將更新按鈕連接到我的Excel表,其中包含員工的號碼,姓名和部門。使用Excel-VBA的用戶表單更新按鈕

它是如何工作的,用戶需要輸入員工的號碼,然後顯示名稱和員工的部門(我已經完成)然後用戶可以更改名稱以及部門和新聞更新按鈕現在是問題出現的地方。

每次我按下更新按鈕,將顯示「編譯錯誤:如果沒有結束塊如果」

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

請不要用一個解決方案覆蓋您的問題 - 這將給我們留下兩個答案,而且沒有問題,這會讓未來的讀者感到困惑。謝謝。如果你想展示你如何解決它,例如通過在現有答案的基礎上,下面的自我回答是最受歡迎的。 – halfer

+1

啊,好吧,對不起,這是我第一次來這裏。無論如何,我已經把我的答案放在下面。 –

回答

2

當你在同一行If的聲明,沒有End If應該遵循。刪除該行:

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

哦,我看到了,但是又出現了另一個錯誤,它聲明「運行時錯誤'438':對象不支持這個屬性或方法」任何想法如何解決它? –

+0

@JosephLim在答案中看到了新增的部分,你也有一個錯字'.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