Excel 2007“任意”#NAME? 错误

Excel 2007“任意”#NAME? 错误

在写第一个问题的过程中,我偶然发现了解决方案(有点)。我遇到的问题是,当粘贴以连字符开头的文本时,Excel 会(似乎)随机分布 #NAME? 错误。显然,我知道该错误是因为连字符是一个运算符,而 Excel 正在尝试用它对某个范围或值进行操作。我不知道的是,这些错误并不是随机的——它们出现在任何不包含括号的单元格中。

示例(显然,粘贴时不能带引号)--

(粘贴到单元格时返回错误)

“- 已盖章”

(粘贴时不返回错误)

“- 盖章(”

现在,有了这些知识,我又有了一个新问题:由于我只是将从外部来源收到的文本复制到 Excel 中,有时这些字符串会有括号,有时没有(但它们总是以连字符开头),我有什么办法可以从 Excel 中更改此行为吗?例如,即使单元格返回 #NAME?错误,我是否可以对函数栏中显示的文本采取行动?我尝试使用 =IFERROR 和 =CONCATENATE 在函数开头添加撇号来解决错误,但我无法在问题单元格上使用函数,因为它仍然计算为错误。

因为我是从外部文本源复制这些数据(大量),除了先将其粘贴到记事本中并在需要的地方手动添加括号之外,我还能做什么吗?这似乎很浪费。

答案1

当然,如果您可以先将该列格式化为文本,然后粘贴,那么可以解决许多实际问题。

但并非全部都是。

另一种方法是粘贴数据,然后在仍处于选中状态时执行Find and Replace。 什么? 您会注意到,在发生错误的所有情况下,单元格中都有一个“=”: =- Stamp 作为示例。 “=”可以用单引号字符替换: '现在数据被视为文本。

(出现此错误是因为 Excel 认为,由于连字符的存在,您试图获取“减去命名范围‘Stamp’”的结果。由于没有这样的名称,因此它返回 #NAME? 错误。)

严格来说,Excel 希望找到带有双引号的文本,以便它知道它是文本。找到是可以的,(因为名称中不能有空格,所以它知道它不是命名区域,并尝试将其视为文本。这对您有用。

不幸的是,添加第二个"需要公式,因为 Excel 仅通过 VBA 提供正则表达式,如果您想使用 VBA,则根本不会出现这些,所以...最好不要担心边缘,除非先格式化列不能为您解决问题。或者使用Find and Replace删除“=”是不需要的(您可能只想粘贴并且“它有效”......而不是在那之后执行几个步骤)。

在任何情况下,您都不必在记事本中处理数据,因为 Excel 提供了满足您所有需求的方法。但您可能更喜欢它。而且我相信 NotePad++ 有正则表达式,这可能很好。格式化的想法、想法Find and Replace或使用公式来清理它,或任何组合,都可以很好地发挥作用。这不是 Excel 令人讨厌和无法解决的问题之一,只是它的令人讨厌的问题之一。

相关内容