求vb代码:批量txt导入,一个文本占一个单元格(某个文件夹里有上万个txt,要导入一个excle中)

举例:test文件夹里有1.text内容为:我是numberno.12.text内容为:我是numberno.2要求导入一个excle中A1:1.txtB1:我是numb... 举例:test文件夹里有
1.text 内容为:
我是number no.1
2.text 内容为:我是number no.2
要求导入一个excle中 A1:1.txt B1:我是number no.1 A2:2.txt B2:我是number no.2
展开
 我来答
网海1书生
科技发烧友

2016-08-26 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
Private Sub Command1_Click()
Dim oxl As Object, owb As Object, ost As Object
Dim d As String, i As Long
Set oxl = CreateObject("Excel.Application")
Set owb = oxl.Workbooks.Add
Set ost = owb.sheets(1)
d = Dir("f:\test\*.txt")
Do Until d = ""
    i = i + 1
    ost.cells(i, 1) = d
    Open "f:\test\" & d For Binary As #1
    ost.cells(i, 2) = Input(LOF(1), #1)
    Close #1
    d = Dir
Loop
owb.saveas "f:\test\test.xls"
owb.Close
oxl.quit
MsgBox "ok"
End Sub
cnbubble
2016-08-26 · TA获得超过2607个赞
知道大有可为答主
回答量:1990
采纳率:83%
帮助的人:766万
展开全部

如果每个txt只有一行数据,那么可以这样:

Sub 宏2()
'
' 宏2 宏
'
'
Dim sPath As String
sPath = "E:\编程文件\VB\导入txt到Excel\"
For i = 1 To 10000
    If Dir(sPath & i & ".txt") = "" Then Exit Sub
    ActiveSheet.Range("A" & i).Value = i
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & sPath & i & ".txt", Destination:=Range("$B$" & i))
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 936
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
Next i
End Sub

思路:先录制宏手动导入一个Txt文件,适当修改代码即可。

更多追问追答
追问
我的txt文件 每个里面不只是一行数据 是好多
追答

更改代码如下:

Sub 宏2()
'
' 宏2 宏
'

'
Dim sPath As String
Dim nR As Long, nT As Long
sPath = "E:\编程文件\VB\导入txt到Excel\"
nR = 1
For i = 1 To 10000
    If Dir(sPath & i & ".txt") = "" Then Exit Sub   '判断文件是否存在
    'ActiveSheet.Range("A" & i).Value = i
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & sPath & i & ".txt", Destination:=Range("$B$" & nR))

        .RowNumbers = False
       '……字数太多受限制了,中间这段代码没复制过来,和上面一样。
        .Refresh BackgroundQuery:=False
    End With
    nT = ActiveSheet.Range("B65535").End(xlUp).Row - nR + 1   '插入了多少行
    ActiveSheet.Range("A" & nR & ":A" & nR + nT - 1).Value = i & ".txt"
    nR = nR + nT
Next i
End Sub
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
己曼寒SR
2016-08-26 · TA获得超过3144个赞
知道大有可为答主
回答量:1759
采纳率:90%
帮助的人:1013万
展开全部
这个还是可以实现的 我可以帮你写 留个企鹅
追问
大神百度不让留吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式