#名称? 如何读取配方栏来更改错误的公式 – 不要覆盖它

我一直在困扰这个问题很长一段时间。 我已经想出了解决方法,但每个问题都带来更多的问题。

我的macros复制并粘贴从Microsoft Word到Excel的信息,然后格式化Excel表。

有些单元显示#NAME? 错误。 原因是这个单元格在“= ——- List SC”中拷贝。 我需要进入这个单元格,并删除“= ——”,只留下string列表SC。

我不能只是骑在它,因为每次它改变。 它可能是“列表FL”或“列表BP”或任何其他变化。

我不能做一个InStr或任何其他函数,因为VBA代码只读取它作为一个错误,不读取公式栏。 它只会显示“#NAME?” 或识别错误。

有没有人有什么我可以做的build议?

我已经包含了这个问题的图片。 亮点是错误和公式栏。

谢谢!

乔纳森

公式栏和错误的代码片段

我的macros复制并粘贴从Microsoft Word中的信息到Excel中…一些单元显示#NAME? 错误。

将其粘贴到Excel 之前,您必须编辑从Word获得的string。 您必须从string中删除所有无效的字符。 然后,您可以将其粘贴为公式。

如果----List是单元格中的所需值,则在单元格前加上'----List以便将其解释为文本。

在VBA中,使用.Formula方法访问实际使用的公式,并对其进行stringreplace。

 With Cells(1,3) .Formula = Replace(.Formula, "=------ ", "") End With 

所以事实certificate,我可以将公式存储到一个string中,并添加一个“'”作为string中的第一个字符。 然后,我可以用string(下面称为stfF)replace单元格中的现有公式。

这是我的代码。

昏暗的strF作为string

 For x = 4 To 100 strF = "'" & Cells(x, 1).Formula Cells(x, 1) = strF Next