【问题标题】:Dates in Table are submitted in incorrect regional format表格中的日期以不正确的区域格式提交
【发布时间】:2014-07-24 14:52:37
【问题描述】:

背景信息 我目前有一个 VBA 用户表单,该表单将每日 KPI 提交到 Excel 2010 中的 Excel 表。该表单设置为将今天的日期放入格式为 DD/MM/YYYY 的文本框中(我在澳大利亚),然后转移当我点击提交时,该信息到 Excel 工作表。以前,这个过程很顺利,因为它只是传输纯文本。但现在,日期以美国格式 (MM/DD/YYYY) 提交。我很确定问题出在 Excel 中的某个地方,但无论如何这是我的 VBA 代码:

  'First it populates the text box    
    Private Sub UserForm_Activate()
         TextBox1.Text = Format(Now(), "DD/MM/YYYY")
         End Sub
    'Then it transfers to the spreadsheet
     With nwb.Sheets("daily_tracking_dataset_master")
        .Cells(emptyRow, 1).Value = TextBox1.Value

主要问题 在 Excel 端的某个地方,现在以美国日期格式提交的数据不正确,因此在 6 月 4 日提交的数据变成了 4 月 6 日,请参见图片:http://tinypic.com/r/2vslyd5/8/

当我将数字格式更改为常规时,它显示 VBA 表单中的纯文本日期已转换为四月日期。 IE。改格式不是简单的事情,日期其实已经完全改了:

  • 41789 (30/05/2014)
  • 41789 (30/05/2014)
  • 41789 (30/05/2014)
  • 41735 (06/04/2014)
  • 41735 (06/04/2014)
  • 41735 (06/04/2014)

我为此尝试了几种解决方法,包括:

  1. 突出显示 A 列并将格式更改为 DD/MM/YY 格式的日期
  2. 在主页选项卡下选择日期格式 -> 数字组 -> 日期下拉框
  3. 检查 Windows 和 Excel 中的区域设置
  4. 我也尝试进入数据 -> 数据工具 -> 文本到列。然后在第 3 步中选择日期下的 DMY - 这似乎是我在其他论坛中遇到的问题的主要修复之一。

由于 Excel 表的性质,每次我的提交表单添加记录时,表都会扩展一行 - 我不确定这是否会产生任何影响,并且不知何故从表中生成了不正确的日期设置?

任何解决此问题的想法都很棒。

【问题讨论】:

  • 你试过.Cells(emptyRow, 1) = Format(TextBox1.Value, "DD/MM/YYYY)吗?
  • 不幸的是,这带来了同样的问题。 VBA 方面之前工作正常:)
  • 我无法复制该问题。当我使用以下语法将新日期添加到日期列格式为“常规”的表中时:Range("A2") = Format(Now(), "DD/MM/YYYY"),我得到 4/6/2014 的预期输出。
  • 如果之前运行良好,您是否恢复了从那时起对代码所做的任何更改?也许在.Cells(emptyRow, 1).Value = TextBox1.Value 上设置断点并在写入工作表之前检查TextBox1 的值会有所帮助。
  • 嗨,ARich,我现在已经尝试了一些方法。 1. 我已指示提交表单提交到没有格式的全新工作簿 - 存在相同的错误。 2. 我完全忽略了文本框并使用 .Cells(emptyRow, 1).Value = Format(Now(), "DD/MM/YYYY") 3. 我还逐步浏览了数据,从而遵循了您的第二个选项文本框值为 04/06/2014。由于发生错误时我没有对 VBA 代码进行任何更改(我纯粹在 Excel 中使用数据透视表工作),我猜这是一个 Excel 问题。但由于我提交了一本没有格式的全新书,我不知所措。

标签: date excel excel-2010 vba


【解决方案1】:

回写单元格时需要使用 CDate 将文本转换为真实的日期值,以免 VBA 误解:

.Cells(emptyRow, 1).Value = cdate(TextBox1.Value) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    相关资源
    最近更新 更多