【发布时间】:2017-10-24 19:02:18
【问题描述】:
StackOverFlow 的同仁,
我带着另一个我正在努力学习的问题来找你。 我有一个将员工添加到员工数据库的用户窗体。 代码如下,运行良好。
Private Sub CommandButton1_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Employee-Data")
iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ws.Cells(iRow, 4).Value = Me.TextBox1.Value
ws.Cells(iRow, 3).Value = Me.TextBox2.Value
ws.Cells(iRow, 7).Value = Me.TextBox3.Value
ws.Cells(iRow, 6).Value = Me.TextBox4.Value
ws.Cells(iRow, 15).Value = Me.TextBox5.Value
ws.Cells(iRow, 9).Value = Me.TextBox6.Value
ThisWorkbook.Save
Unload Employee
End Sub
我的问题如下,我想将 TextBox6 的格式限制为荷兰电话号码,即 06-########。我希望 TextBox6 显示 06- 并使其只能输入 8 个数字作为值。
我已经尝试了以下以及更多:
Private Sub TextBox6_Change()
TextBox1.Text = Format(ws.Cells(iRow, 9).Value,"##""-"########")
End Sub
我在这里思考的错误是什么,我使用了错误的方法吗?任何人都可以为这个问题提出一个体面的解决方案吗?如前所述,试图从我的错误中吸取教训,所以请告诉我我做错了什么,而不是仅仅提供解决方案。
【问题讨论】:
-
Textbox6 不是被赋值为 Cells(iRow, 9) 中的值吗?将第 9 列格式化为“文本”,并按照您希望它出现在 textbox6 中的方式完整地显示其中的数据。
-
也许我说得不够清楚。我想要 Userform TextBox6 中显示的预设文本“06-”。因此,当他们输入“06-”11111111(仅剩下的数字)时,该值将作为 06-11111111 返回到我的工作表中。你觉得这可能吗?
-
哦,当然。在 Me.Textbox6.Value 之前添加“06-”&。所以它显示为
ws.Cells(iRow, 9).Value = "06-" & Me.TextBox6.Value您可能需要将单元格格式化为文本或其他内容,否则它可能会给您一个日期。答案如下:) -
只是为了解释一下,“”之间的所有内容都是您想要的文本,而 & 是添加其余指令的命令。
标签: vba excel-2010 userform