ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 799|回复: 9

[求助] 求助修改代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-6-13 14:25 | 显示全部楼层 |阅读模式
这个代码拆分出来的工作表全部在一个工作簿了,我想要一个工作表拆分出来的对应一个工作簿应该怎么修改代码呢
  1. Sub bhhh()
  2.     Dim n, j
  3.     Dim wb As Workbook, sht As Worksheet
  4.     Set wb = Workbooks.Add
  5.     Application.ScreenUpdating = False
  6.     n = 25
  7.    
  8.     For j = 4 To 25
  9.         With Workbooks("财务报表5月 (4).xlsm").Sheets(j)
  10.             For i = 2 To .Cells(.Rows.Count, 1).End(3).Row Step n
  11.                 k = k + 1
  12.                 Set sht = wb.Worksheets.Add(after:=Sheets(Sheets.Count))
  13.                 sht.Name = .Name & k
  14.                 .Rows(1).Copy sht.[A1]
  15.                 .Rows(i).Resize(n).Copy sht.[a2]
  16.             Next
  17.         End With
  18.         Next
  19.         
  20.         
  21.         Application.ScreenUpdating = True
  22.         End Sub
复制代码


财务报表5月 (4).rar

1.19 MB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2019-6-13 14:33 | 显示全部楼层
Set wb = Workbooks.Add你不是会新建工作薄吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-13 14:48 | 显示全部楼层
灰色幽灵 发表于 2019-6-13 14:33
Set wb = Workbooks.Add你不是会新建工作薄吗?

老师,我是想新建多个工作簿每个工作表拆分的对应一个工作簿,但是这个代码执行只建了一个工作簿。把所以拆分的都放在这个工作簿了,想修改又不知怎么修改

TA的精华主题

TA的得分主题

发表于 2019-6-13 14:59 | 显示全部楼层
Set wb = Workbooks.Add
Set sht = wb.Worksheets.Add(after:=Sheets(Sheets.Count))
把头上Set wb = Workbooks.Add删掉,放到Set sht = wb.Worksheets.Add(after:=Sheets(Sheets.Count))前面,这样就可以循环创建了,最后你在保存的时候改一下文件名。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-13 15:20 | 显示全部楼层
灰色幽灵 发表于 2019-6-13 14:59
Set wb = Workbooks.Add
Set sht = wb.Worksheets.Add(after:=Sheets(Sheets.Count))
把头上Set wb = Wor ...

老师,这样变成新建的工作簿只有一个工作表了,我想要新建的工作簿里有拆分出来的多个工作表

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-13 15:23 | 显示全部楼层
灰色幽灵 发表于 2019-6-13 14:59
Set wb = Workbooks.Add
Set sht = wb.Worksheets.Add(after:=Sheets(Sheets.Count))
把头上Set wb = Wor ...

比如安徽快运1,安徽安徽快运2,安徽快运..........  为一个 工作簿,广东快运1,广东安徽快运2,广东快运..........  为一个 工作簿

TA的精华主题

TA的得分主题

发表于 2019-6-13 15:31 来自手机 | 显示全部楼层
编写vBA前先把程序的工作思路理清楚,而不是先想这个代码点么改

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-13 15:40 | 显示全部楼层
小小鸟前滚翻 发表于 2019-6-13 15:31
编写vBA前先把程序的工作思路理清楚,而不是先想这个代码点么改

老师帮忙想想办法吧,该怎么修改一下。我实在是不会搞了。。

TA的精华主题

TA的得分主题

发表于 2019-6-13 15:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-6-13 15:51 | 显示全部楼层
学生的方式的 发表于 2019-6-13 15:40
老师帮忙想想办法吧,该怎么修改一下。我实在是不会搞了。。

附件发上来了

财务报表5月 (4).zip

1.25 MB, 下载次数: 6

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

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-25 11:33 , Processed in 0.042838 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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