ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 运用VBA汇总多个工作表时,分表有链接,如何只引用其数值?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-9-20 12:11 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

学习了高手的这个汇总表,真的会给自己的工作省很多体力和时间。

但我的分表里的数据有些是链接的,直接汇总会出现链接错误。

请问如何能只引用各个表中单元格的数值呢?

BmDcvvxA.zip (11.12 KB, 下载次数: 79)


TA的精华主题

TA的得分主题

发表于 2006-9-20 12:20 | 显示全部楼层

欢迎:mindyzhou。

建议把你要汇总的工作簿一起上传。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-9-20 14:53 | 显示全部楼层

例子

例子如下,每个月都要统计,这样的表共有100多个。表里都是链接。请高手帮助啊!

pGMx0iKa.zip (190.17 KB, 下载次数: 66)


TA的精华主题

TA的得分主题

发表于 2006-9-20 15:13 | 显示全部楼层

简单处理了一下。添加了一点代码。把下面的代码替换原代码试试

Sub GET_hjsong_MX()    '汇总程序,打开所有的工作簿,依次取数
    Dim files
    Dim a&, b&, m&, i%
    Dim sht As Worksheet, Chjs As Worksheet
    Dim wb As Workbook

    Application.ScreenUpdating = False    '关闭屏幕更新,防止闪屏、加快代码运行

    files = Application.GetOpenFilename("所有文件(*.xls),*.xls", , , , True)    '选取一个范围,可以选多个excel文件
    If Not IsArray(files) Then    '如果按取消,没有选择的时候,删除新增的表,并退出程序
        MsgBox "没有选定工作薄!~"
        Exit Sub
    End If

    SHtAdd    '每次运行之前都重新增加一个工作表“hjsong”
    Set Chjs = ThisWorkbook.Sheets("hjsong")    '给汇总表赋值

    m = 2
    For i = LBound(files) To UBound(files)    '对于getopenfilename得到的是一个数组,从数组的第一个到,最后一个循环
        Set wb = Workbooks.Open(files(i))    '依次打开
        N = Application.Substitute(wb.Name, ".xls", "")    '取工作簿的名称
        For Each sht In wb.Sheets    '在新打开的工作簿的工作表里循环
            If sht.Name = "2006年7月" Then    '先判断表名,然后判断里面是否有数据
                a = GETrow(sht)    'a为最大行,b为最大列
                b = GETcol(sht)

                If a > 1 And b > 1 Then     '如果有数据的话
                    '如果没有对表名的控制的话,会汇总所有有数据的表,其实这里可以自定义一个函数,根据格式判断哪些工作表需要汇总

                    If sht.AutoFilterMode = True Then sht.AutoFilterMode = False    '如果有自动筛选就取消自动筛选

                    If i = LBound(files) Then    '第一个工作表时,复制标题(第一行内容)
                        sht.Range(sht.Cells(1, 1), sht.Cells(1, b)).Copy Chjs.Cells(1, 2)
                        For t = 1 To b    '复制列宽
                            Chjs.Cells(1, t + 1).ColumnWidth = sht.Cells(1, t).ColumnWidth
                        Next t
                    End If
                    sht.Range(sht.Cells(2, 1), sht.Cells(a, b)).Copy Chjs.Cells(m, 2) '开始复制数据到B列最后的一行里.
                    Chjs.Cells.Copy
                    Chjs.Cells.PasteSpecial Paste:=xlPasteValues
                    Application.CutCopyMode = xlCopy
                    Chjs.Cells(m, 1) = N    'A列为工作簿名称
                    m = GETrow(Chjs) + 1    '重新计算hjsong表里的最后一非空行

                End If
            End If
        Next sht
        wb.Close False    '不保存,关闭打开的表
    Next i

    Application.ScreenUpdating = True    '重新打开屏幕更新

End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-9-20 15:26 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-9-20 16:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

但是,dear,我在执行汇总时,除了第一个表格的数据正确汇总了,其他的同文件引用的单元格只能显示“0”。

vlookup的单元格更是全部显示为#N/A。

该如何解决呢?再次感谢啦!

 

[em17]

TA的精华主题

TA的得分主题

发表于 2006-9-20 16:45 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-9-20 16:58 | 显示全部楼层

亲爱的斑竹,请看run的情况

bbR1s6an.zip (17.16 KB, 下载次数: 36)

abPbEgqm.zip

190.18 KB, 下载次数: 33

运用VBA汇总多个工作表时,分表有链接,如何只引用其数值?

Xo5WYCxY.zip

238.79 KB, 下载次数: 32

运用VBA汇总多个工作表时,分表有链接,如何只引用其数值?

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-9-20 17:02 | 显示全部楼层

我上传了两个分表,和修改过的汇总表。

主要的问题在于:

一、1-5月的销量数据是vlookup链接的,汇总表中不能汇总过去,只显示#n/a

二、只有第一个分表的客户名称可以汇总过去,从第二个开始就全都变成0了。

TA的精华主题

TA的得分主题

发表于 2006-9-20 17:13 | 显示全部楼层

客户1EOL#REF!#REF!#REF!#REF!#REF!#####REF!#REF!#REF!0.0
客户2EOL#REF!#REF!#REF!#REF!#REF!#####REF!#REF!#REF!0.0
客户3EOL#REF!#REF!#REF!#REF!#REF!#####REF!#REF!#REF!0.0
客户4EOL#REF!#REF!#REF!#REF!#REF!#####REF!#REF!#REF!0.0

To:Dear mindyzhou.你的分表中的结果就没有值呀。

还有,分表中的公式的单元格使用的是相对引用,复制到汇总表后,因为位置不一致,导致数据错误。这个不是偶的问题啊。

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

本版积分规则

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

GMT+8, 2024-11-23 07:28 , Processed in 0.038660 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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