我在Inventor中使用VBA編輯器來執行此操作。我剛剛使用了一個OpenFileDialog來選擇一個* .iam文件,並在Form3.TextBox3.Text中顯示該名稱。從那裏,有一個外殼設置來打開文件。但是,由於路徑的其餘部分缺失,shell不知道它只打開了文件名。如何獲取我的文件夾路徑名並將其與我的文件名連接起來?
我已經嘗試了這幾種方式沒有運氣,所以我放棄並詢問: 1)如何獲取文件夾路徑?從那裏我將它作爲一個字符串。 (FileName已經是一個字符串。) 2)如何連接兩個字符串以在文本框中一起顯示?
非常感謝! 阿莉莎
相關的代碼:
這是調用打開文件對話框的模塊:
Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
"GetOpenFileNameA"(pOpenfilename As OPENFILENAME) As Long
Public Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Public Function SelectFileOpenDialog()
Dim strTemp, strTemp1, pathStr As String
Dim i, n, j As Long
Dim OpenFile As OPENFILENAME
Dim lReturn As Long
Dim sFilter As String
Dim Fname As String
OpenFile.lStructSize = Len(OpenFile)
sFilter = "Assembly Files (*.iam)" & Chr(0) & "*.IAM" & Chr(0)
OpenFile.lpstrFilter = sFilter
OpenFile.nFilterIndex = 1
OpenFile.lpstrFile = String(257, 0)
OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
OpenFile.lpstrFileTitle = OpenFile.lpstrFile
OpenFile.nMaxFileTitle = OpenFile.nMaxFile
OpenFile.lpstrInitialDir = dir_path
OpenFile.lpstrTitle = "Select An Assembly"
OpenFile.flags = 0
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
MsgBox "No file selected. Please try again."
Else
Fname = Trim$(OpenFile.lpstrFileTitle) ' copy the filename to "Fname"
n = FileLen(OpenFile.lpstrFile) 'length of the file
Resolve.FileName.Text = Fname
End If
End Function
這是試圖打開組件表格3的部分:
Private Sub Open_Button_Click()
Dim shell As Object
Set shell = CreateObject("Shell.Application")
shell.Open FileName
End Sub
顯示您的代碼... –
@TimWilliams按要求添加 – meer2kat
'OpenFile.lpstrFile'爲您提供完整路徑。 'OpenFile.lpstrFileTitle'只是文件名。 –