几个月前,我在Visual Studio中用c编写了一些统计函数,将其编译成.dll文件,我现在在Excel中的UDF中使用它。我曾经成功地将工作簿和.dll从一台计算机移动到另一台计算机。
但由于某种原因,我无法在第三台计算机上运行,我无法弄清楚原因。我得到一个#value!警告。
VBA相当简单:
Option Explicit
Private Declare Function kampryk Lib "C:\Users\Anders\Documents\Visual Studio 2012\Projects\mitprojekt\Debug\mitprojekt.dll" (ByRef p1a As Integer, ByRef p2a As Integer, ByRef s1a As Integer, ByRef s2a As Integer, ByRef ga As Integer, ByRef va As Integer) As Integer
-----
Function kampryk1(p1a As Integer, p2a As Integer, s1a As Integer, s2a As Integer, ga As Integer, va As Integer) As Integer
kampryk1 = kampryk(p1a, p2a, s1a, s2a, ga, va)
End Function
单元格中的文字格式为“= kampryk1(1,1,1,1,1,1)”
此第三台计算机上的文件夹和.dll位于c驱动器中与代码中指定的第一台和第二台计算机上相同的位置。我在所有三台计算机上使用相同的32位Excel 365。我能想到的唯一区别是我在第一台和第三台计算机上使用Windows 7,在第二台计算机上使用8.1。
当我从第一台计算机移动到第二台计算机时,我真的不记得做其他事情而不是将包含.dll的文件夹移动到正确的位置,以便对可能出错的任何建议表示赞赏。