【问题标题】:Formula entered in Cells by VBA gives 1004VBA 在单元格中输入的公式给出 1004
【发布时间】:2014-02-05 22:37:24
【问题描述】:

我正在使用代码使用 Outlook.msg 文件中的字段值(例如主题、发件人等)填充 Excel 工作表。 Outlook.msg 文件与 Excel 文件位于同一文件夹中。

如果我可以在此 Excel 文件中创建指向这些消息的超链接,将会很方便。我希望超链接是“动态的”,这样如果我将整个文件夹(带有 Outlook.msg 文件和 Excel 工作簿)移动到链接仍然有效的另一个位置。

我使用此代码创建“动态”超链接: 超链接字符串 = "=HYPERLINK(MID(CELL(""filename"");1;FIND(""["";CELL(""filename""))-1))" & sName

其中 sName 是 Outlook.msg 文件名 然后我用

循环填充单元格

Worksheet("sheetname").Cells(Row, Column).Formula = Hyperlinkstring

这给了我 1004 运行时错误。当我在“=”之前添加一个额外的空格时,就像“=HYPERLINK(MID etc... 代码运行良好并且单元格被填充,当我手动删除空间时,超链接就像一个魅力。为什么这不能直接工作,还有其他方法吗?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    当使用.Formula 时,您需要在公式中使用逗号, 而不是分号;(即使您的本地分隔符是分号):

    Hyperlinkstring = "=HYPERLINK(MID(CELL(""filename""),1,FIND(""["",CELL(""filename""))-1))" & sName
    Worksheet("sheetname").Cells(Row, Column).Formula = Hyperlinkstring
    

    或者您可以使用.FormulaLocal 代替.Formula。在这种情况下,您应该在公式中使用本地分隔符(即分号 ;):

    Hyperlinkstring = "=HYPERLINK(MID(CELL(""filename"");1;FIND(""["";CELL(""filename""))-1))" & sName
    Worksheet("sheetname").Cells(Row, Column).FormulaLocal = Hyperlinkstring
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 2013-09-19
      • 1970-01-01
      相关资源
      最近更新 更多