簡體   English   中英

將變量從vba傳遞到.bat文件

[英]Passing a variable from vba to .bat file

我正在嘗試將VBA單詞中的變量傳遞給批處理文件。 該變量是用戶必須在其中輸入用戶名的輸入框。 然后,該批處理文件應采用該用戶名,並對照我們目錄中的AD組進行檢查。 我必須首先在VBA中顯示變量,因為我需要在批處理文件運行后在VBA腳本中對其進行操作(除非將批處理變量傳遞到單詞vba中會更容易)。 我所做的所有研究都引導我遵循以下思路:

Dim val, r As String
r = InputBox("Please enter your username:")
val = "path\mybat.bat" & r
Call Shell(val, vbNormalFocus)

要么:

Dim val, r As String
r = InputBox("Please enter your username:")
val = "path\mybat.bat r"
Call Shell(val, vbNormalFocus)

我在VBA中不斷收到運行時錯誤53。 我也不確定將變量傳遞到.bat文件后如何調用。

 val = "path\\mybat.bat r" 

r只是字符串文字"path\\mybat.bat r"中的另一個字符-VBA應該如何得知您的意思 r引用了該局部r變量?

val = "path\mybat.bat " & r 'note the trailing space in the string literal

將其用作變量:將其從字符串文字中拉出,並將其連接起來。

錯誤53為“找不到文件”。 通過忘記尾隨空格,您可以調用mybat.batAndWhateverRcontains ,這可能不是現有文件名。 因此,“找不到文件”。

還要注意以下常見陷阱:

 Dim val, r As String 

這將r聲明為String ,而將val為隱式Variant

Dim val As String, r As String

將它們都聲明為String變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM