【发布时间】:2016-09-13 04:39:48
【问题描述】:
最近(以前没有人注意到它发生过,如果有的话)Excel 正在将一些“ID”类型的值转换为日期。正如您在此处看到的那样,有一些逻辑值被转换为哪些逻辑,用户在其中添加了一个列来显示底层值的真正含义,以及它们应该如何表示(原始,无转换):
所以因为“01”后面有一个“-”,Excel 认为“01-”应该是一月,假设最后两个字符代表年份。
在不包含破折号的项目代码中,它们是单独存在的。如何防止 Excel 以这种方式“提供帮助”并将这些值转换为日期?
更新
针对 Scott Craner 的评论,这是我必须写出该值的代码:
using (var memberItemCodeCell = priceComplianceWorksheet.Cells[rowToPopulate, DETAIL_MEMBERITEMCODE_COL])
{
memberItemCodeCell.Style.Font.Size = DATA_FONT_SIZE;
memberItemCodeCell.Value = _memberItemCode;
memberItemCodeCell.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
}
...当我尝试通过在单元格名称后键入“for”来确定如何将值格式化为文本或常规时,我看到了以下选项:
那么我需要使用什么 - FormatedText (sic) 或 ConditionalFormatting,以及如何具体设置这些以将列格式化为 Text 或 General,如果这两者中的任何一个是首选?
【问题讨论】:
-
将列格式化为
Text或General -
您将希望将语言标签添加到您的 OP。因此,那些知道该语言的人会被提醒。
-
(VBA 使用的是什么 IDE/编辑器?)
-
如果您输入的值可能被误解为日期,
General格式将不会保留。对我来说,似乎只有text格式是一个可靠的选择。 -
我认为您正在寻找的是
memberitemCodeCell.numberformat="@"假设memberitemCodeCell引用您 Excel 工作表中的目标范围。