[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 请教各位,怎样才能将结果导出到excel的第二列呢

请教各位大侠,我有文本a.txt
111;222;333;444
555;666;777;888
999;101;102;103
我先提取文本a.txt第二列数据到b.excel后,我想再提取文本a.txt第四列数据到b.excel的第二列,注意是导出到excel的第二列,这该怎么弄啊。请各位大侠指点

本帖最后由 ArdentMan 于 2011-7-11 08:36 编辑
  1. Dim Path, FSO, EXCEL, Book, Arr, Str
  2. Path = CreateObject("Wscript.Shell").CurrentDirectory & "\"
  3. Set FSO = CreateObject("Scripting.FileSystemObject")
  4. Str = FSO.OpenTextFile("a.txt").ReadAll()
  5. Arr = Split(Str, vbCrLf)
  6. Set FSO = Nothing
  7. Set EXCEL = CreateObject("Excel.Application")
  8. EXCEL.Visible = False
  9. Set Book = EXCEL.Workbooks.Open(Path & "b.xls")
  10. For Each Str In Arr
  11.   If Str <> "" Then
  12.     i = i + 1
  13.     EXCEL.Cells(i, 2).value = Split(Str, ";")(3)
  14.   End If
  15. Next
  16. Book.Save
  17. Book.Close
  18. Set Book = Nothing
  19. EXCEL.Quit
  20. Set EXCEL = Nothing
  21. MsgBox "导入完成!", , "ArdentMan友情提示"
复制代码
注:
  楼主的文本式样中的分隔符是全角的分号,是不是搞错了,如果搞错了请将代码Split(Str, ";")(3)中的全角分号改为半角分号,b.excel应该为b.xls,代码保存为test.vbs到a.txt和b.xls所在目录中双击运行,有问题请及时反馈~~~
一路飘过的鸟~~~

TOP

奥  谢谢ArdentMan 大哥, Str = FSO.OpenTextFile("a.txt").ReadAll()
这句怎么报错呢,还有批处理能有达到这样的目的不啊

TOP

本帖最后由 ArdentMan 于 2011-7-11 09:16 编辑

3# lengguoyong

改为Str = FSO.OpenTextFile(Path & "a.txt").ReadAll()

批处理不能对已有的xls文件进行操作,除非是用cmd直接生成的xls文件。
一路飘过的鸟~~~

TOP

改为了这个好像也不行,我直接把绝对路径填了就好了 , 请问批处理能实现这样的功能不啊

TOP

如果a.txt文本前面有5行不相关数据,如何跳开这5行数据,然后再取下面第四列数据到excel啊,

TOP

  1. Dim Path, FSO, EXCEL, Book, Arr, Str
  2. Path = CreateObject("Wscript.Shell").CurrentDirectory & "\"
  3. Set FSO = CreateObject("Scripting.FileSystemObject")
  4. Str = FSO.OpenTextFile(Path & "a.txt").ReadAll()
  5. Arr = Split(Str, vbCrLf)
  6. Set FSO = Nothing
  7. Set EXCEL = CreateObject("Excel.Application")
  8. EXCEL.Visible = False
  9. Set Book = EXCEL.Workbooks.Open(Path & "b.xls")
  10. i = -5
  11. For Each Str In Arr
  12.   If Str <> "" Then
  13.     i = i + 1
  14.     If i > 0 Then EXCEL.Cells(i, 2).value = Split(Str, ";")(3)
  15.   End If
  16. Next
  17. Book.Save
  18. Book.Close
  19. Set Book = Nothing
  20. EXCEL.Quit
  21. Set EXCEL = Nothing
  22. MsgBox "导入完成!", , "ArdentMan友情提示"
复制代码
一路飘过的鸟~~~

TOP

返回列表