【发布时间】:2015-04-13 18:19:59
【问题描述】:
在我的一生中,我无法让这个 shell 过程处理变量。我正在尝试执行 POSTRESULTS6,然后处理 csv 文件。 “DISPLAY”参数告诉 POSTRESULTS6 在处理 csv 时显示一个进度窗口。
Dim MyAppID As Variant
Dim stExecute As String: stExecute = """C:\Program Files (x86)\PerkinElmer\LABWORKS64\POSTRESULTS6.exe"""
Dim stFile As String: stFile = "INFILE:C:\PostResult6\Multi-Component_Data_Import.csv"
Dim stFull As String: stFull = "stExecute & "" "" & stFile"
MyAppID = Shell("stFull" & "" "" & DISPLAY, vbNormalFocus)
AppActivate (MyAppID)
当我像这样在一行中全部输入时,该过程按预期工作:
MyAppID = Shell("""C:\Program Files (x86)\PerkinElmer\LABWORKS64\POSTRESULTS6.exe"" & "" "" & INFILE:C:\PostResult6\Multi-Component_Data_Import.csv" & "" "" & DISPLAY, vbNormalFocus)
我想使用变量的原因是为了缩短代码行数,并可能使 csv 文件名的过程动态化。
我猜它与空格有关,但我不知道我的错误在哪里。我也不知道如何将一长串代码继续到下一行。空格下划线似乎不起作用。
顺便说一句,当我的 shell 过程非常简单时,我不必声明 MyAppID 变量。随着它变得越来越复杂,我开始收到有关未定义 MyAppID 的错误。有谁知道这是为什么?
非常感谢任何帮助。
编辑:当我使用变量运行代码时出现的错误是“运行时错误'53':找不到文件”
我知道分配给变量的文件路径是正确的。我在 Windows 资源管理器中对其进行了测试。
【问题讨论】:
-
您的报价有问题。