表单VBA中错误的文本框

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

我要求用户插入一些数据,当它做的时候,文本框会改变数据。

例如,如果用户插入:2013年3月1日,然后运行窗体,则窗体改为使用原始数据执行代码, 01 / 03 /2013。

我意识到,总是改变一天一个月,但从来不是一年。

额外的信息,我从来没有“告诉”的forms,它将要处理的数据是一个date。

我正在努力工作,所以任何帮助将不胜感激。

如果需要额外的信息,请让我知道。

码:

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 

谢谢。

您必须更改系统的date格式才能接受vba表单的input格式。

开始>控制面板>时钟

语言和date,在区域和语言下select更改date,时间或数字格式。 在date和时间格式下,select短date前的下拉列表,然后selectdd-mmm-yy 。 在相同的date并selectdddd,mmmm dd,yyyy 。 我希望这会有所帮助

这是一个VBA:]。 只需转换为string:

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

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

请提供有关如何存储用户input的更多信息。 你用什么数据typesvariables来存储用户input? 什么是迁移过程的input?

后期编辑:

格式化你的单元格

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

PS您可以将您的用户input存储在variables中:

  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 

希望这可以帮助。