我正在做一个表格,我发现自己遇到了一个奇怪的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
感谢。
答案 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
。我希望这会有所帮助