【问题标题】:Formatting Textbox (Userform VBA in Excel 2010) to Dutch mobile phone number将文本框(Excel 2010 中的 Userform VBA)格式化为荷兰手机号码
【发布时间】: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


【解决方案1】:
ws.Cells(iRow, 9).Value = "06-" & Me.TextBox6.Value

请注意单元格格式,因为您可能会得到日期。转换成文字或数字等。

【讨论】:

  • 我会在私人潜艇中这样做吗?
  • 在您的代码中,是的。只需在Me.TextBox6.Value前面添加一小部分"06-" &
  • 您不会在文本框中看到它,但它会在完成后显示在单元格中。
  • 啊啊啊啊,现在我明白了。我如何继续在 TextBox 中显示类似的内容。因为我的用户,你知道吗,用户。我希望他们看到并输入剩余的 8 个数字。如果我这样做,我的用户最终可能会得到 06-06-11111111..的值。
  • 您可以简单地在文本框前面添加一个标签。并在标签属性上,将“标题”更改为 06-。这样,他们将看到文本框前面的 06- 而不会输入它。您也可以只贴一个标签,说明不要添加代码,只需输入您的 8 位数字或其他内容。
猜你喜欢
  • 2020-07-29
  • 2016-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多