使用Excel VBA更新用户表单的按钮
因此,我试图将“更新”按钮连接到包含员工编号、姓名和部门的excel表 它的功能是什么?用户需要输入员工的编号,然后它将显示姓名和员工的部门(我已经完成了),然后用户可以更改姓名和部门,并按下更新按钮,这就是问题所在 每次我按下更新按钮,它都会显示“编译错误:如果没有块if则结束”使用Excel VBA更新用户表单的按钮,excel,vba,Excel,Vba,因此,我试图将“更新”按钮连接到包含员工编号、姓名和部门的excel表 它的功能是什么?用户需要输入员工的编号,然后它将显示姓名和员工的部门(我已经完成了),然后用户可以更改姓名和部门,并按下更新按钮,这就是问题所在 每次我按下更新按钮,它都会显示“编译错误:如果没有块if则结束” 当语句与If位于同一行时,后面不应出现End If。删除该行: For x = 2 To lastRow If ws.Cells(x, 3).Values = empNum Then Rows(x).Sele
当语句与
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
多亏了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
哦,我明白了,但是出现了另一个错误,它声明“运行时错误'438”:对象不支持此属性或方法“知道如何解决它吗?@JosephLim看到答案中添加的部分,您也有一个拼写错误
。值@JosephLim可能是从未满足的条件?非常感谢!我成功了,我放错了专栏哈,请不要用解决方案覆盖你的问题-这会给我们留下两个答案,没有问题,这会让未来的读者感到困惑。谢谢如果你想展示你是如何解决这个问题的,例如,在现有答案的基础上,下面的自我回答是最受欢迎的。啊,好的,对不起,这是我第一次来这里。无论如何,我已经把我的答案放在下面了。
If ws.Cells(x, 3).Value = empNum Then Rows(x).Select
' ^^^^^^ not .Values
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