VBA文件路径对象语法
我在excel中的VBA中有以下代码:VBA文件路径对象语法,vba,excel,Vba,Excel,我在excel中的VBA中有以下代码: Sub Main() Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) Dim vrtSelectedItem As Variant With fd If .Show = -1 Then MsgBox "The path is: " & vrtSelectedItem Next vrtSelec
Sub Main()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Dim vrtSelectedItem As Variant
With fd
If .Show = -1 Then
MsgBox "The path is: " & vrtSelectedItem
Next vrtSelectedItem Else
End If
End With
Set fd = myVariable
End Sub
获取用户选择的文件路径并将其放入宏的上下文是什么
因此,如果我想在以下代码中替换Computer&DelploymentInfo的文件路径:
.Range("A1:A2").FormulaR1C1 = "=INDEX('Computer&DeploymentInfo_06_23_15_v3.xlsx'!Table1[scheduleddate],MATCH([ @HostName],'Computer&DeploymentInfo_06_23_15_v3.xlsx'!Table1[computername],0))"
在过程范围之外公开变量:
Public vrtSelectedItem As String
Sub Main()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Dim vrtSelectedItem As Variant
With fd
If .Show = -1 Then
MsgBox "The path is: " & vrtSelectedItem
Next vrtSelectedItem Else
End If
End With
Set fd = myVariable
End Sub
或者使过程成为返回字符串参数的UDF:
Function GetPath() As String
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Dim vrtSelectedItem As Variant
With fd
If .Show = -1 Then
MsgBox "The path is: " & vrtSelectedItem
Next vrtSelectedItem Else
End If
End With
GetPath = CStr(vrtSelectedItem)
End Function
Sub Example()
Dim myFilePath As String
myFilePath = GetPath & IIf(Right(myFilePath, 1)= "\", vbNullString, "\")
MsgBox myFilePath
End Sub
最后,您将使用:
.Range("A1:A2").FormulaR1C1 = "=INDEX('" & myFilePath & "_06_23_15_v3.xlsx'!Table1[scheduleddate],MATCH([ @HostName],'" & myFilePath & "_06_23_15_v3.xlsx'!Table1[computername],0))"
vrtSelectedItem从未被赋值,可能会告诉用户使用SelectedItems.Item(1)@Sorceri我个人认为任何原始代码都不会工作,因为它充满了语法错误-但这不是OP要求的:)-我只是演示传递变量所需的逻辑。