【问题标题】:Error 1004 FormulaLocal with SEERROSEERRO 出现错误 1004 FormulaLocal
【发布时间】:2017-03-04 01:02:11
【问题描述】:

我正在尝试使用 vba 将公式插入到工作表上的单元格中。我相信可以使用下面的公式来完成,但不幸的是我不知道如何修复下面的语法。

我的 FormulaLocal 语法有什么问题?

奇怪的是,使用 R.Formula,它可以工作,但是单元格得到错误 #NAME

   Sub InsertIFERROR()
        Dim R As Range
        Set R = Application.InputBox("Select a range", "Get Range", Type:=8)
        R.Select
        For Each R In Selection.SpecialCells(xlCellTypeFormulas)

            R.FormulaLocal = "=SEERRO(" & Mid(R.FormulaLocal, 2) & ",""-"")"

        Next R
    End Sub

【问题讨论】:

  • 如果您看到的错误确实是#NAME,您的Excel 可能不是葡萄牙语,此时您不能在FormulaLocal 中指定葡萄牙语函数名称。为什么还要use FormulaLocal
  • debug.print Mid(R.FormulaLocal, 2) 看看它是否返回你认为应该的结果
  • PT-BR 不使用; 代替, 吗?检查列表分隔符的原始公式或系统的区域设置。
  • 也许你实际上有 PT-PT,而不是 PT-BR。在这种情况下,请使用SE.ERRO; 而不是SEERRO,
  • 我认为这可以作为一个无法复制的印刷错误合理地关闭,然后决定该错误可能比立即明显的更常见。我在下面发布了答案并编辑了问题,以便标题反映问题。

标签: vba excel


【解决方案1】:

请特别注意 Excel 的区域版本。 PT-PT 版本使用 SE.ERRO 和分号作为列表分隔符,而 PT-BR 版本使用 SEERRO(通常使用逗号作为列表分隔符)。

【讨论】:

    【解决方案2】:

    试试这个....希望它会起作用,并且在你犯错的地方有意义。

    Sub InsertIFERROR()
        Dim R As Range
        Set R = Application.InputBox("Select a range", "Get Range", Type:=8)
        'R.Select
        For Each rCell In R.SpecialCells(xlCellTypeFormulas)
    
            rCell.FormulaLocal = "=SEERRO(" & Mid(rCell.FormulaLocal, 2) & ",""-"")"
    
        Next rCell
    End Sub
    

    【讨论】:

    • 您也可以使用R.Select,但不需要使用。所以,我把它作为评论。
    • 虽然remove Select 很好,但我看不出它如何解决 OP 的问题。
    • @GSerg 为什么不呢?我测试了代码。通过删除 R.Select 我使用 R.SpecialCells... 而不是 Selection.SpecialCells..... 我再次测试了我的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多