【问题标题】:zip code + 4 mail merge treated like an arithmetic expression邮政编码 + 4 邮件合并视为算术表达式
【发布时间】:2015-05-11 20:40:27
【问题描述】:

我正在尝试在 Word 2010 中进行简单的邮件合并,但是当我插入一个应该代表康涅狄格州邮政编码(即 06880)的 excel 字段时,我遇到了 2 个问题:

  1. 前导零被抑制,例如 06880 改为 6880。我知道我至少可以切换域代码以使其成为 {MERGEFIELD ZipCode # 00000} 并且至少可以工作。

但这是我似乎无法弄清楚的真正问题:

  1. zip+4 字段(例如 06470-5530)被视为算术表达式。 6470 - 5530 = 940 所以用上面的公式代替它变成 00940 这是错误的。

也许我的 Excel 电子表格或 Word 中的某个选项需要设置才能使其正常工作?请指教,谢谢。

【问题讨论】:

  • 数据加载前设置单元格格式为文本(鼠标右键->格式化单元格->文本)
  • 您确实应该显示用于有问题的合并的代码/宏。

标签: ms-word excel-formula mailmerge


【解决方案1】:

macropod's post in this conversation

只要邮政编码到达 Word(在 5+4 格式的邮政编码中有或没有“-”号,他的域代码就可以解决问题。但是,如果您在 Excel 列中混合使用文本和数字格式,则存在 OLE DB 提供程序或 ODBC 驱动程序(如果您使用它来获取数据)会将列视为数字并将所有文本值返回为 0 的危险。

是的,如您所见,Word 有时会将文本字符串视为数字表达式。当您尝试应用数字格式时,或者当您尝试在 { = } 字段中进行计算时,当您对 { = } 字段中的表格单元格内容求和时,或者当 Word 决定进行数字比较时,它将执行此操作在(比如说)一个 { IF } 字段中 - 在后一种情况下,您可以通过用双引号将比较数括起来让 Word 将表达式视为字符串。

【讨论】:

    【解决方案2】:

    在 Excel 中,要在输入看起来像数字、日期、分数等但不是数字(邮编、电话号码等)的数据时强制使用字符串数据类型,只需在数据前键入撇号即可。

    =06470 将被解释为数字 6470 但='06470 将是字符串“06470”

    【讨论】:

    • 在一般情况下,这不足以解决问题,除非用户使用 DDE 连接到 Excel。为什么?当 Word 通过 OLE DB(Windows Word 2002 及更高版本中的默认设置)或 ODBC 从 Excel 获取数据时,OLE DB 提供程序/ODBC 驱动程序根据前 8 个(默认设置)确定数据源中每一列的数据类型列中的单元格。因此,如果您的前 8 个单元格包含已输入为数字的邮政编码,则提供程序/驱动程序会将列视为数字。列中的文本值将作为 0 传递给 Word。因此 '06470 将被视为 0。所以不是那么“简单”!
    【解决方案3】:

    我发现的最简单的解决方法是将 Excel 文件另存为 CSV。 Word 会从表面上看这一切。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 2013-07-27
      • 1970-01-01
      • 2010-09-27
      相关资源
      最近更新 更多