我使用以下代码根据5 x 3(5行,3列)维数组的内容创建.bat文件。批处理文件的每一行必须包含存储在数组的每一行上的元素,这是批处理文件的第1行必须是:array(1,1)array(1,2)array(1,3),每个元素都包含数组由空格分隔,并用双引号括起元素(")。
这里的关键(我相信)是数组中每个元素的字符数很高(它们是网络文件的长路径)
按照我使用的代码:
Sub Global_batch_creation()
Workbooks.Add
For i = 1 To numCases
Cells(i, 1) = Chr(34) & globalBatch(i, 1) & Chr(34) & Space(1)
Cells(i, 2) = Chr(34) & globalBatch(i, 2) & Chr(34) & Space(1)
Cells(i, 3) = Chr(34) & globalBatch(i, 3) & Chr(34)
Next i
Columns("A:C").EntireColumn.AutoFit 'This is to make all content _
'visible, which I think is required when using the FileFormat:=xlTextPrinter below
ActiveWorkbook.SaveAs Filename:=batchFile & ".bat" _
, FileFormat:=xlTextPrinter, CreateBackup:=False
Application.DisplayAlerts = False
ActiveWorkbook.Close
End Sub
结果文件在第2列被截断,其中第3列对应的内容出现在.bat文件的第6行到第10行中。
如何强制将数组中每一行的所有内容放在.bat文件的同一行?
提前感谢您的帮助!
Pegaso
答案 0 :(得分:0)
谢谢Thomas&帕特里克!
没有什么比使用合适的工具更好的了!
Sub Global_batch_creation()
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile(batchFile & ".bat", True)
For i = 1 To numCases
a.WriteLine (Chr(34) & globalBatch(i, 1) & Chr(34) & Space(1) _
& Chr(34) & globalBatch(i, 2) & Chr(34) & Space(1) _
& Chr(34) & globalBatch(i, 3) & Chr(34) & Space(1))
Next i
a.Close
End Sub
当有人没有正确的工作教育时,就会发生这种情况,幸运的是你们在这里救援!