0

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

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

例如,如果用户插入: 2013年 3 月 1日然后运行表单,则使用原始数据执行代码的表单会更改它,2013年 1 月 3日。

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

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

我正在努力使它解决,所以任何帮助将不胜感激。

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

代码:

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

谢谢。

4

3 回答 3

1

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

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

后期编辑:

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

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

PS您可以将用户输入存储在变量中:

    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

希望这可以帮助。

于 2013-03-12T09:13:12.840 回答
1

这是一个 VBA :]。只需通过以下方式转换为字符串:

ThisWorkbook.Sheets("SUMUP").Range("D11") = Format(TextBox1.Value, "dd/MM/yyyy")
于 2013-03-12T09:13:19.007 回答
0

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

开始>控制面板>时钟

语言和日期,在区域和语言下选择更改日期、时间或数字格式。在日期和时间格式下,选择短日期前的下拉菜单,然后选择dd-mmm-yy。对长日期执行相同操作并选择dddd,mmmm dd,yyyy。我希望这会有所帮助

于 2013-03-19T08:33:14.017 回答