我已经通过Excel中的vba创建了一个自定义函数。如果我在计算机上使用它,则可以正常工作,但是,如果将文件更改为另一台计算机(该计算机也具有创建的功能),则该文件将不起作用。我必须更改创建函数的路径。有什么方法可以在每次将文件复制到另一台计算机时不更改路径吗?
='C:\Users\Usuario1\Documents\Complementos\BondsTIRMDuration.xlam'!TIrbonds($A2;F2;'C:\Users\Usuario1\Documents\Complementos\AsBusinessDay.xlam'!asbusinessday('C:\Users\Usuario1\Documents\Complementos\AsBusinessDay.xlam'!PrevBusinessDay(HOY())))*100
答案 0 :(得分:0)
解决方案2:您可以将所有文件放在同一路径(C:\ work)中,然后只需将文件名放在
='BondsTIRMDuration.xlam'!TIrbonds($ A2; F2;'AsBusinessDay.xlam'!asbusinessday('AsBusinessDay.xlam'!PrevBusinessDay(HOY())))* 100
答案 1 :(得分:0)
只需将外接程序保存在每台计算机上的正确路径中即可。
应该是这样的:
C:\Users\YOURNAME\AppData\Roaming\Microsoft\AddIns\
请参见Install and Use Excel Add-ins以确定正确的路径。
如果外接程序安装正确,则应该能够运行用户定义的函数而无需路径。
答案 2 :(得分:-1)
您可以使用应用程序调用特殊文件夹。
MsgBox Application.DefaultFilePath
此示例为:C:\ Users \ Usuario1 \ Documents
'Here are a few VBA path functions
MsgBox Application.Path
MsgBox Application.DefaultFilePath
MsgBox Application.TemplatesPath
MsgBox Application.StartupPath
MsgBox Application.UserLibraryPath
MsgBox Application.LibraryPath
您也可以创建wscrit对象来调用其他路径,例如:
MsgBox CreateObject("Wscript.Shell").SpecialFolders("Desktop")
Wscript.shell对象的示例文件夹:
AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup
Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Programs
Recent
SendTo
StartMenu
Startup
Templates
并执行这样的宏,(始终必须使用相同的目录):
Sub Macro()
AddIns.Add Filename:=Application.DefaultFilePath & "\Complement.xlam"
AddIns("Complement").Installed = True
End Sub