Excel精英培训网

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

[已解决]vba 拆分工作表求助

[复制链接]
发表于 2015-4-2 21:21 | 显示全部楼层 |阅读模式
sheets("录入表")是母工作表,希望按照A列的序号拆分工作表.
并且以后会经常按照顺序在下面添加客户,格式都不改变的,
拆分后的工作表格式如后边样表的格式
想做个按钮,每次添加客户之后,点下按钮就会自动生产以这个客户序号(A列)为工作表的名字
并且C列的公司名字能创建个超链接,点击能自动跳转到改公司所在的工作表

最佳答案
2015-4-3 14:01
  1. Sub 生成新表()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     arr = Sheet1.Range("a1:k" & Sheet1.[a65536].End(3).Row)
  4.     For i = 3 To UBound(arr)
  5.         d(Val(arr(i, 1))) = i
  6.     Next
  7.     a = arr(UBound(arr), 1)     '最末行序号(默认为以此序号新建表)
  8.     xh = InputBox("请输入要生成表式的序号", , a)
  9.     For Each sh In Worksheets
  10.         x = x & "," & sh.Name
  11.     Next
  12.     If InStr("," & x, "," & xh & ",") Then MsgBox "工作表" & xh & "已存在": Exit Sub
  13.     r = d(Val(xh))       '根据序号找到对应行r
  14.     If r = 0 Then MsgBox "序号" & xh & "不存在": Exit Sub
  15.     Sheets("表式").Copy after:=Sheets(Sheets.Count)
  16.     With ActiveSheet
  17.         .Name = xh
  18.         .[a1] = arr(r, 3) '公司名
  19.         .[b2] = xh  '序号
  20.         .[b3].Resize(4, 1) = Application.Transpose(Array(arr(r, 5), arr(r, 7), arr(r, 6), arr(r, 4)))    '左四
  21.         .[f3].Resize(4, 1) = Application.Transpose(Array(arr(r, 8), arr(r, 9), arr(r, 11), arr(r, 10)))     '右四
  22.     End With
  23.     Sheet1.Activate
  24.     Sheet1.Hyperlinks.Add Sheet1.Cells(r, 3), Address:="", SubAddress:="'" & Sheets(xh).Name & "'" & "!A1"        'r行第三列加超链接
  25. End Sub
复制代码

客户跟进情况表.rar

20.6 KB, 下载次数: 15

发表于 2015-4-3 14:01 | 显示全部楼层    本楼为最佳答案   
  1. Sub 生成新表()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     arr = Sheet1.Range("a1:k" & Sheet1.[a65536].End(3).Row)
  4.     For i = 3 To UBound(arr)
  5.         d(Val(arr(i, 1))) = i
  6.     Next
  7.     a = arr(UBound(arr), 1)     '最末行序号(默认为以此序号新建表)
  8.     xh = InputBox("请输入要生成表式的序号", , a)
  9.     For Each sh In Worksheets
  10.         x = x & "," & sh.Name
  11.     Next
  12.     If InStr("," & x, "," & xh & ",") Then MsgBox "工作表" & xh & "已存在": Exit Sub
  13.     r = d(Val(xh))       '根据序号找到对应行r
  14.     If r = 0 Then MsgBox "序号" & xh & "不存在": Exit Sub
  15.     Sheets("表式").Copy after:=Sheets(Sheets.Count)
  16.     With ActiveSheet
  17.         .Name = xh
  18.         .[a1] = arr(r, 3) '公司名
  19.         .[b2] = xh  '序号
  20.         .[b3].Resize(4, 1) = Application.Transpose(Array(arr(r, 5), arr(r, 7), arr(r, 6), arr(r, 4)))    '左四
  21.         .[f3].Resize(4, 1) = Application.Transpose(Array(arr(r, 8), arr(r, 9), arr(r, 11), arr(r, 10)))     '右四
  22.     End With
  23.     Sheet1.Activate
  24.     Sheet1.Hyperlinks.Add Sheet1.Cells(r, 3), Address:="", SubAddress:="'" & Sheets(xh).Name & "'" & "!A1"        'r行第三列加超链接
  25. End Sub
复制代码

客户跟进情况表.rar

27.44 KB, 下载次数: 18

评分

参与人数 1 +1 收起 理由
鬼娃娃 + 1 赞一个!非常感谢!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 07:47 , Processed in 0.170076 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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