2016-04-14 15 views
1

Bir giriş dosyasıyla bir program çalıştırmaya çalışıyorum. VBA Excel komutu, Shell ile çağrıldığında çalışmaz, ancak doğrudan cmd'ye kopyalandığında yapıştırıldığında

Dim command, cfx5_exe_path, cfx_file_folder, cfx_file_name As String 

command = cfx5_exe_path & " -cfx " & cfx_file_folder & cfx_file_name & ".cfx " 
Shell command 

yüzden hata veriyor. Ben doğrudan pencereler cmd içine kopyalayıp yapıştırın ve ilk/son tırnak işaretlerini kaldırırsanız ayıklayıcısında komuta ait çıkan değeri o zaman mükemmel çalışıyor,

"c:\"Program Files"\"ANSYS Inc"\v150\CFX\bin\cfx5pre.exe -cfx c:\Users\Username\Arbeit\Programming\A321_tail_flow.cfx" 

olduğunu. Kabuk ile ilgili sorun nedir?

If the Shell function successfully executes the named file, it returns the task ID of the started program. The task ID is a unique number that identifies the running program. If the Shell function can't start the named program, an error occurs.

ve bununla ilgili bir örnek:

cevap

1

belgelerine diyor, Windows 7 başka bir yerde bulunduğu üzerinde İşte

Sub test() 
    Dim RetVal 
    Dim command As String 
    command = "C:\WINDOWS\CALC.EXE" 
    RetVal = Shell(command, 1) 
End Sub 

Ben Hesaplanan Error 53: file not found olsun. Bu hatayı aldın mı?

Calc'a doğru yolu sağlamak, programı başlatır ve benzersiz bir kimlik döndürür.

Ancak doğru yolunun bir bölümü alıntı hatası atar:

command = "C:\WINDOWS\""SYSTEM32""\CALC.EXE" 

ama tam yolunu alıntı yapmaz:

command = """C:\WINDOWS\SYSTEM32\CALC.EXE""" 

Yani sonra tüm gömülü tırnak kaldırmak gerekir ve alıntı Tam yol bir kez.

+0

Evet, aynı Hatası 53 alıyorum. Neden system32 qoute? Klasör adında boşluk olduğu için Program Dosyalarını alıntıladım. – user3656916

+1

Sadece denemeye başladım. _any_ bölümünde bir boşluk olduğunda sadece tam yol etrafındaki tırnakları kabul ediyor gibi görünüyor. Bu nedenle, yalnızca bir boşluk içeren kısımlar alıntı yapıldığında hataya yol açar. –