我面临一个特殊的问题。
我有一个文件夹选择器程序,如下所示:
Sub Select_Folder()
Dim SelectedFolder As String
' Open the select folder prompt
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = -1 Then ' if OK is pressed
SelectedFolder = .SelectedItems(1)
Else
Exit Sub ' User canceled
End If
End With
Worksheets("RawData").Cells(15, 34) = SelectedFolder
End Sub
我有一个单独的过程来运行 Shell 命令。请注意,这两个过程不共享任何变量名称,Shell 函数也不对文件夹选取器子过程的输出有任何引用。
如果我运行 Shell 脚本而不运行文件夹选择器功能,则一切运行正常,该脚本是从命令提示符运行的。如果我先运行文件夹选择器功能,选择一个文件夹,然后尝试运行 Shell 功能,它会突然结束。只有在先运行Folder Picker子程序的特定情况下,Shell功能才不起作用。有什么建议可能导致此问题吗?
在这两种情况下,脚本是相同的,如果我尝试在 CMD 提示符下运行它,它运行得很好。
编辑:
"cmd.exe /S /C " & "cd " & IBMInstallationPath & " && scm show history -r " & "https://jazz-test4.conti.de/ccm4/" & " -u " & UserName & " -P " & Password & " -C " & Component & " -w " & StreamName & " --remotePath " & Chr(34) & Folder & Chr(34))
IBMPath = "C:\LegacyApp\IBM\EWM_Shell\3rd Party\scmtools\eclipse"
我仍然不确定为什么。也许是因为我的IBM安装路径也在C盘?
我猜文件夹选择器会更改当前目录(您可以使用
Debug.Print CurDir
进行验证),并且您的脚本在某种程度上依赖于特定路径。