2012-11-23 73 views
6

excel vba makrosuyla ilgili bir sorun yaşıyorum. Excel çalışma kitabı ile aynı klasörde olan bir toplu iş dosyasını yürütmek için ihtiyacım var. Kod bazen iyi çalışıyor. Hatanın nedenini bilmiyorum. İşte kod şu şekilde yazılıyor, ancak daha sonra yürütmediği kod dosyasını yazıyor. Sadece bir kez kapatmak için komut penceresini aldım ve code.bat dosyasını bulunamadı söyledi. Yani changedir komutu çalıştı. Cmd.exe çalıştırmak ve changedir zorunda kalmadan göreli yol ile code.bat çalıştırmak mümkün mü?Yürütme .bat dosyası Excel VBA'dan Makro

+2

bir dizeye tırnak için olan ASCII değerini 34 karakter kodu dönüşüm fonksiyonu Chr (34) kullanmaktır". Toplu iş dosyası olarak kaydettiğiniz bir Excel çalışma kitabınız var ve "Excel" dosyasını bir .bat olarak çalıştırmaya çalışıyorsunuz? – InContext

+0

"&&" dizgisinde "" && code.bat "dizgisi özel mi, yoksa dosya adının gerçekten bir parçası mı? – RBarryYoung

cevap

7

Öncelikle, operatörlerin her türlü (&) kullanırsanız tüm CMD bağımsız değişkeni içine gerekir böyle argümanlar,:

:

CMD /K "command "path with spaces" & command" 

Yani böyle bir şey yapmak gerekir

Not Alıntıdan kaçmak için "" "kullanıyorum, ancak VBA'daki bir alıntıdan kaçmanın yolunu bilmiyorum.

PS: Ayrıca boşluk varsa, SADECE boşluk varsa, kod.bat'u da unutmayın.

+2

Ya "blackslash" \ "ya da çift tırnak '' ' –

4

Sorun bu hat Sen cd komutu ayırmak için && önüne bir boşluk gerekir

Shell "cmd.exe /k cd " & ThisWorkbook.path & "&&code.bat" 

aşağı olduğunu ve code.bat ayırmak için sonra eminim.

CMD /K "command1 & command2" 

Ve sonra alt iç içine: Bir CMD örneğini başlattığınızda tüm

Shell "cmd.exe /k cd " & ThisWorkbook.path & " && code.bat" 
2

Shell "cmd.exe/k CD/d" & ThisWorkbook.path & "& & code.bat" Burada

,/d cmd açılacaktır belge klasörünün olmadan. by/d d sürücüsünde açılacak, bunu sizin kolay kullanımınıza göre değiştirebilirsiniz. bir alıntı (") eklemek için

+0

Merhaba, tek bir tırnak kullanmak için siteye katkıda bulunduğunuz için teşekkür ederiz. //stackoverflow.com/help/how-to-answer) Bunu genişletebilir misiniz? – starsplusplus

2

Tek yön() emin Anlamadığım

İlgili konular