ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 如何为同一工作表中多个表格建立目录

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-9-6 05:23 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
遇到一个问题:因为每月的生产单很多且格式固定的,在同一个工作表中反映(表2),但是除了明细表(表2)以外,还需要有个汇总查询表(表1)给老板看,如附件,如何将表2中的相关信息在表1中显示起来,表1中的数据关系是“每一行是上行明细表面数据+32行”(见附件)。我目前笨办法是一个一个链接,但是表太多了,有八九十张,手工更改太麻烦了。向各位高手请教有没有好的办法,多谢!

新建 WinRAR 压缩文件.rar

12.01 KB, 下载次数: 186

TA的精华主题

TA的得分主题

发表于 2009-9-6 07:03 | 显示全部楼层
没看你的文件
正好以前,帮别人做过个 去工作表的小东东
发上来,你看看能用不 取工作表名.rar (8.18 KB, 下载次数: 416)

用宏编了个自定义函数,懂宏的,把代码粘到你的文件里就可以用了
不懂宏,把你的工作表组,粘到这个文件里,再把文件名另存为你要的文件,就可以了

TA的精华主题

TA的得分主题

发表于 2009-9-6 07:31 | 显示全部楼层
新建一个工作表,工作表标签处点右键查看代码,将以下代码贴入
Private Sub Worksheet_Activate()
    Dim sh As Worksheet
    Dim a As Integer
    Dim R As Integer
    R = Sheet1.[A65536].End(xlUp).Row
    a = 2
    If Sheet1.Cells(2, 1) <> "" Then
        Sheet1.Range("A2:A" & R).ClearContents
    End If
    For Each sh In Worksheets
        If sh.CodeName <> "Sheet1" Then
            Sheet1.Cells(a, 1).Value = sh.Name
            a = a + 1
        End If
    Next
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim R As Integer
    R = Sheet1.[A65500].End(xlUp).Row
    On Error Resume Next
    If Target.Count = 1 Then
        If Target.Column = 1 Then
            If Target.Row > 1 And Target.Row <= R Then
                Sheets(Target.Value).Select
            End If
        End If
    End If
End Sub

自动建立工作表目录.rar

10 KB, 下载次数: 381

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-9-6 21:39 | 显示全部楼层

回复 2楼 bbwsj 的帖子

我是不懂宏的,而且由于工作表的格式复杂些,所以粘贴后好象结果不对。不过还是非常感谢你的热心解答。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-9-6 21:51 | 显示全部楼层

回复 3楼 yancjm 的帖子

但是我不是要建工作表目录,而是取明细表中部份数据生成一个新工作表。这些表格的行数和格式是固定的,所以主表的取数是非常有规律的。主表每行取的是“主表上行取的行数+32行”的数据。如目录第一行取明细表第2行的数据,目录第2行取明细表第34行的数据,目录第三行取明细表第66行的数据,目录第四行取明细表第98行的数据。。。。,依此类推。
    因为主表需要的数据不此这类明细表,所以不能将同样的表格做成不同的工作表。这是让我犯愁的
   不知我是否说清楚了。

TA的精华主题

TA的得分主题

发表于 2009-9-7 13:15 | 显示全部楼层
原帖由 花开花谢 于 2009-9-6 21:39 发表
我是不懂宏的,而且由于工作表的格式复杂些,所以粘贴后好象结果不对。不过还是非常感谢你的热心解答。



呵呵 LZ不会复制工作表组 教你个方法:
1、下载并打开我的文件,打开你的文件
2、选中你的文件的第1个工作表,按住SHIFT点你的文件的最后一个工作表,你的文件的所有表就成了“工作表组”了
3、鼠标右键,选“移动或复制工作表”,勾选“建立副本”,“工作簿:栏选我的文件名,“目标”选“最后”,确认,
你的文件就全盘到我的文件里了,因为是工作表组复制,所有的公式都同步跟过来,公式不会自动加原工作簿名称

我的自定义函数 是可以当函数使用的,bmc()里参数就添正整数,
如你要第1个工作表表名,就=bmc(1),如你要第2个工作表表名=bmc(2)

然后你可以把文件名改成你要的任何名称,但要保存我的文件里面的超级链接,就只能用另存为的方法改名

[ 本帖最后由 bbwsj 于 2009-9-7 13:22 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-9-7 15:30 | 显示全部楼层
原帖由 花开花谢 于 2009-9-6 21:51 发表
但是我不是要建工作表目录,而是取明细表中部份数据生成一个新工作表。这些表格的行数和格式是固定的,所以主表的取数是非常有规律的。主表每行取的是“主表上行取的行数+32行”的数据。如目录第一行取明细表第2行的 ...

教你一種方法:
1.將各表的生產單位,生產單號,客戶 用& 連起來,見P:P 欄,
2.用以下數組公式,ROW($2:$3) 表示工作表2和工作表3,如果你有98個工作表,就改成ROW($2:$98)
公式設好後,按三鍵 shift+ctrl+enter 加上 { }
{=SUM(SUMIF(INDIRECT(ROW($2:$3)&"!$P$2:$P$1000"),'1'!D2&E2&F2,INDIRECT(ROW($2:$3)&"!$k$2:$k$1000")))}

11.zip

27.48 KB, 下载次数: 161

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-9-7 23:12 | 显示全部楼层
多谢两位DX的指导,我的水平实在太低了!两位的办法我只能生搬硬套,改一下自己就不知道了。晚上我自己想了一个笨办法已经解决了。THANKS

TA的精华主题

TA的得分主题

发表于 2011-4-20 20:08 | 显示全部楼层
学习了,基础太差,只能先做拿来主义,以候在消化。

TA的精华主题

TA的得分主题

发表于 2011-4-30 10:33 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-3-28 17:15 , Processed in 0.056316 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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