在VBA中使用Shell脚本合并两个文本文件

时间:2017-06-05 01:10:34

标签: excel vba shell

我的VBA代码中有三个String varibales,如下所示:

Dim FilePath As String
Dim FooterFilePath As String
Dim PlusChar As String

FilePath = Application.ActiveWorkbook.Path & "\Bin\file.txt"
FooterFilePath = Application.ActiveWorkbook.Path & "\Bin\footer.txt"
PlusChar = Chr(43)  'i.e. "+" sign

现在我正在尝试合并FilePathFooterFilePath并再次在FilePath中写入合并结果,即覆盖它。为此,我使用的是以下行:

Shell "cmd.exe copy /c & FilePath & PlusChar & FooterFilePath & FilePath", 0

我知道我在这里有语法问题,但我不知道如何将三个变量传递给Shell命令。

1 个答案:

答案 0 :(得分:0)

您必须将变量放在外面的封闭双引号中。您还应该在不同的名称之间插入空格,以便您的命令不会将名称组合在一个名称中。试试这个:

Shell "cmd.exe copy /c " & FilePath & " " & PlusChar & " " & FooterFilePath & " " & FilePath, 0

可是:

  • 没有理由为[{1}}

  • 设置变量
  • 路径中缺少您的云端硬盘名称

  • +/C程序的选项,而不是cmd命令的选项。

  • 在即时窗口中打印该表达式以在执行前验证它是很有用的。为此,您可以在执行前将其放在copy变量和String中:

这是正确的:

debug.print