【发布时间】:2018-04-17 04:13:20
【问题描述】:
Private Sub CommandButton1_Click()
whichSheet = ListBox1.Value
Dim n As Integer
Do
n = n + 1
ListBox1.AddItem Sheets(n).Name
Loop Until n = Worksheets.Count
Worksheets(whichSheet).Activate
Dim lastrow
lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
lastrow = lastrow + 1
Cells(lastrow, 1) = TextBox1
answer = MsgBox("Are you sure you want to add the record?", vbYesNo + vbQuestion, "Add Record")
If answer = vbYes Then
Cells(lastrow, 1) = TextBox1.Text
Cells(lastrow, 2) = TextBox2.Text
Cells(lastrow, 3) = TextBox3.Value
Cells(lastrow, 4) = TextBox4.Text
Cells(lastrow, 5) = TextBox5.Text
Cells(lastrow, 6) = TextBox6.Text
Else
Cells(lastrow, 1) = ""
Exit Sub
End If
End Sub
Private Sub UserForm_Initialize()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ListBox1.AddItem (ws.Name)
Next ws
End Sub
大家好,我正在使用上面的代码,它非常适合我的用户表单。我遇到的唯一问题是,当有人没有从 listbox1 中选择一个选项并提交信息时,会弹出“运行时错误”窗口。我想通过出现一个消息框来阻止这种情况的发生,告诉用户做出选择--->在消息框上单击确定--->然后继续。如果用户没有选择一个选项,那么每次都应该执行相同的过程。如果您有任何想法,我很想尝试一下。谢谢。
【问题讨论】:
-
如果在没有选择的情况下您可以继续进行而不会出错,您可以在您的宏中做出/使用该选择之前添加
On Error Resume Next。然后,使用On Error Goto 0重置错误处理 -
感谢您的帮助,我花了一些时间尝试采纳您的建议,但仍然无法使其正常工作。On Error Resume Next 部分会打开一个无法关闭的消息框。
标签: excel vba listbox userform