Excel精英培训网

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

[已解决]导入数据下标越界

[复制链接]
发表于 2016-5-24 15:40 | 显示全部楼层
本帖最后由 zjdh 于 2016-5-24 15:42 编辑

Sub 数组法()         '二行标题
    Dim s$(), arr$(), a, sh As Worksheet
    Dim f$, i&, j%, m&, k&, n%, r&
    f = ThisWorkbook.Path & "\test2.txt"   '定位文件
    Application.ScreenUpdating = False     '不刷屏
    Application.DisplayAlerts = False      '不提示
    For Each sh In Sheets                  '删除非当前工作表的其他工作表
        If sh.Name <> ActiveSheet.Name Then sh.Delete
    Next
    Application.DisplayAlerts = True
    Cells.ClearContents                   '清除当前工作表数据
    Open f For Input As #1                '打开数据文件
    s = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)   '读取数据到数组
    Close #1                              '关闭数据文件
    r = Rows.Count                        '每页工作表行数
    B = Split(s(0), vbTab)                '提取标题栏1
    C = Split(s(1), vbTab)                '提取标题栏2
    For k = 2 To UBound(s) Step r - 2     '标题行为二行,数据从第三行开始提取,工作表可容纳数据行数减掉二行
        ReDim arr(1 To r, 2)
        n = n + 1                         '工作表计数
        If n > 1 Then Sheets.Add After:=Sheets(Sheets.Count)  '超过一个工作表则添加表格
        m = 0
        For i = k To k + r - 3               '有二行标题,所以-3
            If i > UBound(s) Then Exit For    '若提取完则退出循环
            m = m + 1
            If s(i) <> "" Then                '若有数据则
            a = Split(s(i), vbTab)            '提取一行数据
            For j = 0 To 2                    '赋值一行数据到数组
                arr(m, j) = a(j)
            Next
            End If
        Next
        Range("A1").Resize(1, 3) = B         '填充标题行(一行)
        Range("A2").Resize(1, 3) = C          '填充标题行(一行)
        Range("A3").Resize(m, 3) = arr        '填充数据
    Next
    Application.ScreenUpdating = True
End Sub

评分

参与人数 1 +1 收起 理由
605751967 + 1 赞一个

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 11:41 , Processed in 0.158475 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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