Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: xdwy81129

【求问】txt提取的问题?

[复制链接]
 楼主| 发表于 2014-3-24 00:22 | 显示全部楼层
hwc2ycy 发表于 2014-3-24 00:17
TXT文件是怎么来的?
可以把空格替换下,只保留一个空格,然后再用split分离。

谢谢烟花,等待明天烟花大侠给与帮助

    Dim obj As Scripting.FileSystemObject
    Dim txtStream As Scripting.TextStream


这2句报没有定义

txt是我vba语句写入达到的,我的写入语句是:Print #1, ar1(i, 1), ar1(i, 2)


回复

使用道具 举报

 楼主| 发表于 2014-3-24 00:24 | 显示全部楼层
hwc2ycy 发表于 2014-3-24 00:17
TXT文件是怎么来的?
可以把空格替换下,只保留一个空格,然后再用split分离。

看见是空格,实际用空格替换不了,是系统自己产生的,所以特上来问哈
回复

使用道具 举报

发表于 2014-3-24 00:25 | 显示全部楼层
xdwy81129 发表于 2014-3-24 00:24
看见是空格,实际用空格替换不了,是系统自己产生的,所以特上来问哈

啥系统生成的呀,对了,你可以试试EXCEL里导入文本的方法。
明天再说,早点睡吧。

回复

使用道具 举报

 楼主| 发表于 2014-3-24 00:28 | 显示全部楼层
hwc2ycy 发表于 2014-3-24 00:25
啥系统生成的呀,对了,你可以试试EXCEL里导入文本的方法。
明天再说,早点睡吧。

烟花好好休息,等待明天烟花出手

excel导入不好,因为我有时用2003,txt的行数超过65536,所以需求赋值给数组的解决办法,谢谢烟花
回复

使用道具 举报

发表于 2014-3-24 09:45 | 显示全部楼层
  1. Sub test1()
  2.     Dim strFileName$
  3.     Dim fn, a$, b
  4.     Dim arr()
  5.     Dim i As Long
  6.     fn = FreeFile
  7.     ReDim arr(1 To 2, 1 To 1)
  8.     strFileName = ThisWorkbook.Path & "\试验.txt"
  9.     Open strFileName For Input As #fn
  10.     Do While Not EOF(1)
  11.         i = i + 1
  12.         ReDim Preserve arr(1 To 2, 1 To i)
  13.         Line Input #1, a
  14.         b = Split(a, Space(12))
  15.         arr(1, i) = b(0)
  16.         arr(2, i) = b(1)
  17.     Loop
  18.     Close #fn
  19.     If i Then
  20.         b = WorksheetFunction.Transpose(arr)
  21.      End If
  22. End Sub
复制代码
回复

使用道具 举报

发表于 2014-3-24 10:53 | 显示全部楼层
另外用ADO来查TXT也能返回多少行。
回复

使用道具 举报

 楼主| 发表于 2014-3-24 15:48 | 显示全部楼层
hwc2ycy 发表于 2014-3-24 09:48
有的有一位空格前缀,替换了。

是的,前面的宏里面得出的数据有空格,这个宏没有了,很谢谢烟花

另求教:另外用ADO来查TXT也能返回多少行,语句怎么写,谢谢烟花大侠
回复

使用道具 举报

发表于 2014-3-24 16:07 | 显示全部楼层
xdwy81129 发表于 2014-3-24 15:48
是的,前面的宏里面得出的数据有空格,这个宏没有了,很谢谢烟花

另求教:另外用ADO来查TXT也能返回多 ...
  1. Sub ado()
  2.     Const adUseClient = 3
  3.     Const adModeRead = 1
  4.     Const strFileName = "试验.txt"
  5.     Dim AdoConn As Object
  6.     Dim strConn$, strSQL$
  7.     Set AdoConn = CreateObject("ADODB.Connection")
  8.     strSQL = "select  * from [" & strFileName & "]"
  9.     strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & _
  10.               "\;Extended Properties='text;HDR=No;FMT=Delimited(" & Space(20) & "';"
  11.     With AdoConn
  12.         .CursorLocation = adUseClient
  13.         .Mode = adModeRead
  14.         .ConnectionString = strConn
  15.         .Open
  16.     End With
  17.     MsgBox AdoConn.Execute(strSQL).RecordCount
  18.     AdoConn.Close
  19. End Sub
复制代码
最后一行空白行忽略了。

评分

参与人数 1 +18 收起 理由
xdwy81129 + 18 谢谢扩展赐教

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-2 02:18 , Processed in 0.286327 second(s), 5 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表