表单VBA中的文本框错误

时间:2013-03-12 06:29:47

标签: excel vba textbox

我正在做一个表格,我发现自己遇到了一个奇怪的TextBox问题。

我要求用户插入一些数据,当它发生时,TextBox会更改数据。

例如,如果用户插入: 03/01 / 2013然后运行表单,则表单执行代码并使用原始数据更改它, 01/03 / 2013。

我意识到总是会改变日期和月份,但永远不会改变一年。

额外的信息,我从来没有“告诉”表格,它将处理它的数据是一个日期。

我正努力让它成功,所以任何帮助都会感激不尽。

如果需要额外的信息,请告诉我。

代码:

Private Sub CommandButton1_Click()

ThisWorkbook.Sheets("Hidden").Range("D1").Value = TextBox1.Value

ThisWorkbook.Sheets("Hidden").Range("D2").Value = TextBox2.Value

If TextBox1.Value < TextBox2.Value Then

    If TextBox1.Value = "" Or TextBox2.Value = "" Then

        MsgBox "...", vbExclamation, "  ..."

    Else

    Run "macro"

    ThisWorkbook.Sheets("SUMUP").Range("D11").Value = TextBox1.Value

    ThisWorkbook.Sheets("SUMUP").Range("D12").Value = TextBox2.Value

    End If

Else

MsgBox "..." & vbCrLf & "...", vbExclamation, "  ..."

End If

End Sub

感谢。

3 个答案:

答案 0 :(得分:1)

与您的描述相关的最常见问题:
您可能会将用户输入保存到单元格中。如果是,请检查该单元格的格式。

请提供有关用户输入存储方式的更多信息。您用于存储用户输入的数据类型变量是什么?输入的迁移过程是什么?

后编辑:

格式化您的单元格(最简单的解决方案)

Range = Format(TextBox1.Value, "dd/mm/yyyy")

P.S。 您可以将用户输入存储在变量中:

    Dim txtb1, txtb2 As String

    'ThisWorkbook.Sheets("Hidden").Range("D1").Value = TextBox1.Value
    'ThisWorkbook.Sheets("Hidden").Range("D2").Value = TextBox2.Value
    '
    ' instead of storing the value in cell, use variables ( now youre not going to need a "hidden" sheet
    '
    txtb1 = TextBox1.Value
    txtb2 = TextBox2.Value

希望这有帮助。

答案 1 :(得分:1)

这是一个VBA:]。只需转换为字符串:

ThisWorkbook.Sheets("SUMUP").Range("D11") = Format(TextBox1.Value, "dd/MM/yyyy")

答案 2 :(得分:0)

您必须更改系统的日期格式才能接受vba表单的输入格式。 转到

  

开始&gt;控制面板&gt;时钟

语言和日期,在“区域和语言”下选择更改日期,时间或数字格式。在日期和时间格式下,选择短日期前面的下拉菜单,然后选择dd-mmm-yy。在漫长的约会上做同样的事情并选择dddd,mmmm dd,yyyy。我希望这会有所帮助