Excel精英培训网

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

已经解决了!!!做了一段vba拆分表格,但是总报1004错误,那位大神帮忙看看

[复制链接]
发表于 2019-12-25 23:45 | 显示全部楼层 |阅读模式
本帖最后由 hahake402 于 2019-12-26 20:39 编辑

拆分表格写了一段,能够做相应的动作,但是会报1004错误
   
提示语句是:Sheets(Sheets.Count).Name = Sheet1.Cells(i, l)  1004错误.

我用的是 2016 版

程序如下:

Sub chaifen()

Dim sht, sht1 As Worksheet
Dim i, j, k As Integer
Dim irow As Integer '表里数据有多少行
Dim l As Integer '输入列的数值

l = InputBox("希望按第几列分")
'因为输入的是数字 rang要用字母表示,所以用cell 代替range

'删除其他表
If Sheets.Count > l Then
    Application.DisplayAlerts = flase
    For Each sht1 In Sheets
        If sht1.Name <> "MAF" Then
            sht1.Delete
        End If
    Next
    Application.DisplayAlerts = ture

End If


'表里数据有多少行
irow = Sheet1.Range("a65536").End(xlUp).Row

'拆分表
For i = 1 To irow
    k = 0 '恢复初始值
    For Each sht In Sheets
        If sht.Name = Sheet1.Cells(i, l) Then
            k = 1 '表示表名字已存在
        End If
    Next
    If k = 0 Then

    Sheets.Add after:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = Sheet1.Cells(i, l)     '会报1004错误

    '另一个方法以上两行合并成一行sheets.add (after:=sheets(sheets.count)).name = "123"
   
    End If

Next
'拷贝数据

For j = 2 To Sheets.Count
    Sheet1.Range("a1:f" & irow).AutoFilter Field:=l, Criteria1:=Sheets(j).Name
    Sheet1.Range("a1:f" & irow).Copy Sheets(j).Range("a1")

Next

Sheet1.Range("a1:f" & irow).AutoFilter

Sheet1.Select

MsgBox "已处理完毕!"


End Sub

发表于 2019-12-26 08:31 | 显示全部楼层
你用断点测试下 Sheet1.Cells(i, l) 的当前值,可能是个空格也说不定呢。
回复

使用道具 举报

发表于 2019-12-26 09:34 | 显示全部楼层
Sheet1  是啥?      sheets("Sheet1")  还是 sheets(1)
回复

使用道具 举报

 楼主| 发表于 2019-12-26 20:36 | 显示全部楼层
找到原因了,计算已有行数时,表格建立不规范,最后一好友注释,多算了一行,导致新建sheet时命名为空值,因此出错了.感谢各位的回应和提醒.万分感谢!!!
回复

使用道具 举报

 楼主| 发表于 2019-12-26 20:44 | 显示全部楼层
把以下者行改成这样就好了,一劳永逸

'表里数据有多少行
irow = Sheet1.Cells(65536, l).End(xlUp).Row
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 17:30 , Processed in 0.677721 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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