我正在自动化Excel,使用宏系统作为我应该通过自动化做什么的指南。当我将列格式化为日期时,宏生成 NumberFormat 该列为:

[$-409]m/d/yy h:mm AM/PM;@

我正在尝试解读这到底意味着什么。我收集 来自谷歌搜索, ,方括号中的值为 “健康)状况”, ,并且如果条件:

$-409

满足,那么它将使用 NumberFormat

m/d/yy h:mm AM/PM

如果没有,它使用 NumberFormat

@

我找到的参考文献说数字格式“@”是 文本占位符

所以我的问题是:

  1. 什么是条件式 $-409 测试?是比较某些东西吗 -409 (IE。 负四百零九),如果是的话,是什么 美元符号 它是在比较吗?

  2. 如果条件失败,则诉诸 文本占位符 “at-sign”,它显示什么?

有帮助吗?

解决方案

为了澄清其他人所说的:

[$-409] 是 语言环境 代码,以十六进制给出。使用特定区域设置代码作为日期前缀决定了使用各种日期时间格式代码时显示的内容。例如使用日期

1973 年 11 月 28 日 11:28:13

如下表所示:

Format Code  409 (English United States)  804 (Chinese PRC)
===========  ===========================  =================
m            11                           11
mm           11                           11
mmm          Nov                          十一月
mmmm         November                     十一月
d            27                           27
dd           27                           27
ddd          Mon                          二
dddd         Monday                       星期二
y            73                           73
yy           73                           73
yyy          1973                         1973
yyyy         1973                         1973
AM/PM        AM                           上午

因此,最终具有两个不同区域设置标识符的相同格式代码会给出不同的结果:

[$-409]mmmm dd yyyy  h:mm AM/PM
November 27 1973  11:28 AM


[$-804]mmmm dd yyyy  h:mm AM/PM
十一月 27 1973  11:28 上午

由于查找区域设置代码列表就像拔牙一样,因此这里有一些参考:

语言标识符常量和字符串 (主要资源, 档案库.is)

按区域设置排序的 Windows 区域设置代码 (档案库.is)

按区域设置排序的 Windows 区域设置代码 (Archive.org, 档案库.is)

其他提示

纳夫和格兰特·瓦格纳巧妙地回答了有关您的问题 $-409, ,所以我只需填写缺失的部分:

如果您输入字符串而不是有效日期,分号后面的“@”会告诉 Excel 如何处理数据。这 @ 简单的意思是“在这里逐字放置任何文本”。

一些简单的例子来说明这一点:

=TEXT("abc","hh:mm;@")
abc


=TEXT("abc","hh:mm;@@")
abcabc

本文 有关文本格式选项的详细说明。

这个帖子 解释它。基本上409是 区域设置 ID 对于“英语 - 美国”。如果你用过 [$-414], 例如,那么日期将被格式化为“挪威语 (Bokmål)”。

我对问题(2)的猜测是原始数据将显示为字符串而不是格式化。快速测试可以验证这一点。

[$-409] 似乎不是一个条件。它似乎是一个区域设置代码。

如果我使用以下格式设置单元格格式 风俗 的格式 [$-409]m/d/yy h:mm AM/PM;@, ,输入日期: 1/1/9, ,然后查看单元格的格式,我看到 日期 的格式 m/d/yy h:mm AM/PM 与一个 区域设置(位置)English (United States).

如果您将格式更改为类似 [$-439]m/d/yy h:mm AM/PM;@ 您将看到另一种语言的单元格内容。

我不确定 @. 。它可能指示如果没有正确的字体或区域设置,如何显示日期。

这是列表 Microsoft 分配的区域设置 ID.

Excel 2007 中有一个错误,会将所有常规格式更改为 [$-409] 类型日期格式。
通常,使用 [$-409] 是一种不错的格式。
微软尚未提供针对该错误的修复程序。此错误通常发生在大型和共享 Excel 工作簿中。

如果您有过所有常规格式更改为日期的经历,请尝试转到“单元格样式”,右键单击“普通”并将“普通”修改回“常规”。它会在框中告诉您正常的格式类型。这是错误,因为它通常应该是“一般”而不是 [$-409] 的某些版本。

我最终不得不从工作簿中完全删除该格式。要执行此操作,工作簿必须取消共享。要从工作簿中删除上面在“正常”单元格类型下标识的格式 [$-409],请右键单击单元格,选择自定义,滚动直到找到上面标识的 [$-409] 格式类型,然后删除所有格式又会回到所谓的将军。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top