Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2117|回复: 7

[已解决]导入数据多了一行标题

[复制链接]
发表于 2015-9-3 09:33 | 显示全部楼层 |阅读模式
本帖最后由 张雄友 于 2015-9-12 18:58 编辑

导入数据多了一行标题,每多一个文件就多一行标题,只要一行标题就可以了。


最佳答案
2015-9-9 09:02
df3f.gif


另存第一个文本文件,编码为ANSI。
再运行代码。

导入数据多了一行标题.zip

21.6 KB, 下载次数: 10

 楼主| 发表于 2015-9-4 13:23 | 显示全部楼层
回复

使用道具 举报

发表于 2015-9-7 10:28 | 显示全部楼层
            Open arr(i) For Input As #1    '使用open语句输入
            k = False '最初锁(即k)是关闭的
            If i = 1 Then k = True '如果是第1个文本文件,就开锁

            Do While Not EOF(1)   '运行到文件的结尾结束
                Line Input #1, sr            '按行读取数据

                If k Then '如果锁开了,才处理
                    temp = Split(sr, ";")
                    n = n + 1
                    For j = 1 To UBound(temp) + 1
                        brr(n, j) = temp(j - 1)
                    Next
                End If
                k = True '经过读取第一行之后,锁就一直是打开的
            Loop
            Close #1   

导入数据多了一行标题2.rar (14.38 KB, 下载次数: 6)

评分

参与人数 1 +9 收起 理由
张雄友 + 9 很给力!

查看全部评分

回复

使用道具 举报

发表于 2015-9-8 11:24 | 显示全部楼层
  1. Sub 导入TXT只要一行标题()
  2.     Dim arr$$(), m&, Mypath$$, brr(1 To 65535, 1 To 43)
  3.     Dim i, sr$$, temp, n&
  4.     With Application.FileDialog(msoFileDialogFolderPicker)
  5.         .InitialFileName = ThisWorkbook.Path & ""
  6.         If .Show = False Then [A1].Activate: Exit Sub
  7.         Mypath = .SelectedItems(1) & ""
  8.     End With
  9.     Call GetFiles(arr, m, Mypath)
  10.     With Sheet1
  11.         .UsedRange.ClearContents '清除原有的数据
  12.         n = 0
  13.         For i = 1 To UBound(arr)
  14.             Open arr(i) For Input As #1    '使用open语句输入
  15.             k = 0       '每个文件的行数
  16.             Do While Not EOF(1)   '运行到文件的结尾结束
  17.                 Line Input #1, sr            '按行读取数据
  18.                 k = k + 1
  19.                 If i = 1 Or k > 1 Then    '如果第1个文件或者其他文件第2行开始,则处理
  20.                     temp = Split(sr, ";")
  21.                     n = n + 1
  22.                     For j = 1 To UBound(temp) + 1
  23.                       brr(n, j) = temp(j - 1)
  24.                     Next
  25.                 End If
  26.             Loop
  27.             Close #1              '关闭文本文件
  28.         Next
  29.         .Range("a1").Resize(n, UBound(brr, 2)) = brr   '将数组写入单元格
  30.     End With
  31. End Sub
复制代码

评分

参与人数 1 +9 收起 理由
张雄友 + 9 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-9-9 03:04 | 显示全部楼层
爱疯 发表于 2015-9-7 10:28
Open arr(i) For Input As #1    '使用open语句输入
            k = False '最初锁(即k)是 ...

有些标题变成了奇怪字符,如黄色单元格。


复件 导入数据多了一行标题.zip

23.85 KB, 下载次数: 1

回复

使用道具 举报

 楼主| 发表于 2015-9-9 03:05 | 显示全部楼层
grf1973 发表于 2015-9-8 11:24

有些标题变成了奇怪字符,如黄色单元格。

复件 导入数据多了一行标题.zip

23.85 KB, 下载次数: 0

回复

使用道具 举报

发表于 2015-9-9 09:02 | 显示全部楼层    本楼为最佳答案   
df3f.gif


另存第一个文本文件,编码为ANSI。
再运行代码。
回复

使用道具 举报

 楼主| 发表于 2015-9-9 18:39 | 显示全部楼层
爱疯 发表于 2015-9-9 09:02
另存第一个文本文件,编码为ANSI。
再运行代码。

http://www.excelpx.com/thread-370038-1-1.html
列数相同可以但不同就不行了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 13:43 , Processed in 0.307700 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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