在Excel VBA的WScript.Shell命令中使用变量。该命令旨在将多个tsv文件合并为1。
很难对路径进行编码,但是我正在努力使用变量将其合并
Sub Combine()
Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
wsh.Run "cmd /c type C:\Path\SubDir\*.tsv > C:\Path\SubDir\All.txt", windowStyle, waitOnReturn
End Sub
尝试使用变量:
Dim FileName As String
Dim cmd_01 As String
FileName = SubDir
cmd_01 = "type C:\Path\" & FileName & "\*.tsv > C:\Path\" & FileName & "\All.txt"
wsh.Run "cmd /c & cmd_01 & """, windowStyle, waitOnReturn
我希望最终得到一个名为All.txt的文件,当我对整个命令进行硬编码时,该文件可以工作,但是我想使用一个变量,因为我有几个要迭代的目录。我尝试了上述几种变体,但都无济于事-似乎可以快速打开命令窗口,但实际上无法运行命令来组合文件。
答案 0 :(得分:0)
您在一行中放入了太多“
wsh.Run "cmd /c & cmd_01 & """, windowStyle, waitOnReturn
如果您想要这样做,可以通过调试检查字符串,或者只进行debug。那样打印一行
cmd_01 = "type C:\Path\" & FileName & "\*.tsv > C:\Path\" & FileName & "\All.txt"
debug.print "cmd /c " & cmd_01 & """
debug.print "cmd /c " & cmd_01
wsh.Run "cmd /c " & cmd_01 , windowStyle, waitOnReturn