Option ExplicitPrivate Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As LongPrivate Sub Command1_Click() Dim strCurrentDir As String Dim strFileName As String Dim nBufferLen As Long nBufferLen = 260 strFileName = String(nBufferLen, Chr(0)) GetModuleFileName ByVal 0, ByVal strFileName, nBufferLen strCurrentDir = Left(strFileName, InStrRev(strFileName, "\")) MsgBox "当前exe所在目录:" & strCurrentDir End Sub
.DialogTitle = "从Excel导出" & Text1.Text & "数据"
.FileName = "*.xls"
.Filter = "(Excel)*.xls|*.xls"
.CancelError = True
.ShowOpen
End WithCommonDialog1.FileName 就是类似于C:\Documents and Settings\Administrator\桌面\aa.xls
CommonDialog1.Filter 得出的只是你的文件名
用GetModuleFileName获得当前.exe文件的全路径和文件名,把文件名去掉就变成楼主所谓的“当前路径”了。
goodname008(卢培培,充电中......) 说的我用了出来老是空值,不知道为什么
这个和app.path有什么区别呀?
Dim strCurrentDir As String
Dim strFileName As String
Dim nBufferLen As Long
nBufferLen = 260
strFileName = String(nBufferLen, Chr(0))
GetModuleFileName ByVal 0, ByVal strFileName, nBufferLen
strCurrentDir = Left(strFileName, InStrRev(strFileName, "\"))
MsgBox "当前exe所在目录:" & strCurrentDir
End Sub
关闭IDE环境。
在资源管理器中双击.vbp文件找开工程。事实上楼主要的应该不是工程路径,而是编译后的.exe文件所在的目录。
应该把先编译,然后单独运行编译后的.exe就可以了。