【问题标题】:Date format changes when userform text box sends a required date format to sheet当用户表单文本框向工作表发送所需的日期格式时,日期格式会发生变化
【发布时间】:2020-01-17 16:32:47
【问题描述】:

我有一个用户表单,我从该用户表单中以 mm/yy(月/年) 格式将日期发送到工作表。传输到工作表时,它会更改格式,并且在工作表的另一个位置显示的内容非常不同。

对于日期格式,我使用以下代码:

TextBox3.SetFocus

If IsDate(TextBox3.Text) Then
Debug.Print Format(CDate(TextBox3.Text), "mm/yy")
 Else
Debug.Print "Not a valid date"
End If

转码:

Dim X As Long
Dim Y As Worksheet
Set Y = Sheets2
X = Y.Range("B" & Rows.Count).End(xlUp).Row
with Y
.Cells(X + 1, "D").Value = TextBox3.Value
End with

当我从用户窗体传输日期时,它显示如下:

相同的日期在表格中显示不同:

我想以 MonthYear 格式显示日期。例如,如果日期是 2021 年 6 月,则显示为 06/21

【问题讨论】:

  • Format(cDate, "mmm-yyyy")
  • 它不工作
  • 您只需要格式化工作表上的单元格以显示您希望的方式。请注意,23-Jul29-Aug 将被解释为今年的。如果2329 代表一年而不是一天,则需要以不同方式处理。
  • 我在 Cells 中进行了更改,但问题仍然存在
  • 是的,2329 是年,而不是天。我希望它是 23-Jul07/2329-Aug08/29。跨度>

标签: excel vba


【解决方案1】:

很难说出您需要帮助的地方,因为您提供的代码只是在即时窗口中打印日期。通常,您需要对单元格本身进行格式更改。因此,在您从表单设置数据后,对您的工作表执行类似的操作。

Range("A2:A50").NumberFormat = "mm/yy"

编辑:更新上面的代码

Dim X As Long
Dim Y As Worksheet
Set Y = Sheets2
X = Y.Range("B" & Rows.Count).End(xlUp).Row
with Y
.Cells(X + 1, "D").Value = TextBox3.Value
.Cells(X + 1, "D").NumberFormat = "mm/yy"
End with

【讨论】:

  • 谢谢。我已经发布了一个转移代码。你能再检查一下吗?
  • 可以更新代码来修改目标单元格的格式。 .Cells(X + 1, "D").Value = TextBox3.Value 后放入 .Cells(X + 1, "D").NumberFormat = "mm/yy"
  • 我在 .Cells(X + 1, "D").NumberFormat = "mm/yy" 上遇到黄线错误
猜你喜欢
  • 1970-01-01
  • 2019-08-26
  • 1970-01-01
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 2013-10-04
  • 2019-03-12
  • 1970-01-01
相关资源
最近更新 更多