在VBA中input的公式为1004

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

如果我可以在这个Excel文件中build立这些消息的超链接,那将很方便。 我想超链接是这样一种方式,即如果我将整个文件夹(与Outlook.msg文件和Excel工作簿)移动到链接仍然工作的其他位置的“dynamic”。

我使用这个代码来创build'dynamic'超链接:Hyperlinkstring =“= HYPERLINK(MID(CELL(”“filename”); 1; FIND(“”[“”; CELL(“”filename“”)) – 1 ))“&sName

其中sName是Outlook.msg文件名然后我填充循环中的单元格

工作表(“sheetname”)。单元格(行,列).Formula =超链接string

这给了我1004运行时错误。 当我在“=”符号之前加上一个额外的空格像“= HYPERLINK(MID等等…代码运行良好,单元格被填满,当我手动删除空格时,超链接就像一个魅力。直接和另一种方式?

当使用.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