Excel精英培训网

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

[已解决]判断“统计”文件所在目录中,所有工作薄中“报表”工作表的样式是否一致,

[复制链接]
发表于 2014-3-27 10:35 | 显示全部楼层 |阅读模式
判断“统计”文件所在目录中,所有工作薄中“报表”工作表的样式是否一致,

如果不一致,就弹出提示,是那一个文件,格式不一致。

以  统计 工作薄 中 报表 工作表为判断标准。

判断“统计”文件所在目录中,所有工作薄中“报表”工作表的样式是否一致.rar (14.68 KB, 下载次数: 2)
发表于 2014-3-27 15:13 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2014-3-27 17:57 编辑

判断样式是否一致.rar (24.19 KB, 下载次数: 19)
回复

使用道具 举报

 楼主| 发表于 2014-3-27 15:44 | 显示全部楼层
zjdh 发表于 2014-3-27 15:13

感谢老师的帮助,我在本地测试,弹出这个提示,请老师再看看,谢谢了!

未命名.JPG
回复

使用道具 举报

发表于 2014-3-27 17:57 | 显示全部楼层
Sub test()
    Set AD = Sheets("报表").UsedRange
    FL = Dir(ThisWorkbook.Path & "\*.xls")
    Do Until FL = ""
        If FL <> ThisWorkbook.Name Then
            Set SW = Workbooks.Open(ThisWorkbook.Path & "\" & FL)
            If SW.Sheets("报表").UsedRange.Address = AD.Address Then
                For Each RA In AD.Cells
                    If RA.MergeCells <> SW.Sheets("报表").Range(RA.Address).MergeCells Then
                        MsgBox FL & "格式不一致!"
                        Exit For
                    End If
                Next
            Else
                MsgBox FL & "格式不一致!"
            End If
            SW.Close False
        End If
        FL = Dir
    Loop
End Sub
回复

使用道具 举报

发表于 2014-3-27 17:58 | 显示全部楼层
2楼附件已更新。
回复

使用道具 举报

 楼主| 发表于 2014-3-28 10:40 | 显示全部楼层
zjdh 发表于 2014-3-27 17:58
2楼附件已更新。

非常感谢老师的帮助,如果只是判断,工作表中合并单元格是否一致,怎么改呀!

再次麻烦下老师,谢谢你了老师。
回复

使用道具 举报

发表于 2014-3-28 10:51 | 显示全部楼层
本帖最后由 zjdh 于 2014-3-28 10:59 编辑
yjwdjfqb 发表于 2014-3-28 10:40
非常感谢老师的帮助,如果只是判断,工作表中合并单元格是否一致,怎么改呀!

再次麻烦下老师,谢谢你 ...


Sub test()
    Set AD = Sheets("报表").UsedRange
    FL = Dir(ThisWorkbook.Path & "\*.xls")
    Do Until FL = ""
        If FL <> ThisWorkbook.Name Then
            Set SW = Workbooks.Open(ThisWorkbook.Path & "\" & FL)
            For Each RA In AD.Cells
                If RA.MergeCells <> SW.Sheets("报表").Range(RA.Address).MergeCells Then
                    MsgBox FL & "格式不一致!"
                    Exit For
                End If
            Next
            SW.Close False
        End If
        FL = Dir
    Loop
End Sub

评分

参与人数 1 +9 收起 理由
yjwdjfqb + 9 非常感谢老师的耐心解答!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-3-28 10:57 | 显示全部楼层
zjdh 发表于 2014-3-28 10:51
这句就是啊
If RA.MergeCells  SW.Sheets("报表").Range(RA.Address).MergeCells Then

老师这个是判断的,工作表合并是否完全一致,我测试时,向有的工作表单元格中添加底色,也会报格式不一样


我想只是判断所有工作表,合并单元格是否完全一致。

我自己改了下,没有改正确,麻烦老师给我发个改好的附件好吧,万分感谢老师!
回复

使用道具 举报

 楼主| 发表于 2014-3-29 14:38 | 显示全部楼层
zjdh 发表于 2014-3-28 10:51
Sub test()
    Set AD = Sheets("报表").UsedRange
    FL = Dir(ThisWorkbook.Path & "\*.xls")

老师,你好,今天在测试中,发现,这个代码,不能正确的判断,当前路径下,所有工作薄中指定工作表,结构是否完全一致

路径下工作薄中指定工作表,存在结构不完全一致,不能判断出来!

老师空了的话,斧正下哈,谢谢了哟!
回复

使用道具 举报

发表于 2014-3-29 15:36 | 显示全部楼层
本帖最后由 zjdh 于 2014-3-29 15:52 编辑
yjwdjfqb 发表于 2014-3-29 14:38
老师,你好,今天在测试中,发现,这个代码,不能正确的判断,当前路径下,所有工作薄中指定工作表,结构 ...


我7楼的宏是以“统计.xls”为原型比对的,也就是说只比对原型被使用的区域,若被比对的表格超出原型范围则不作比较!
否则应该用我4楼的宏!

评分

参与人数 1 +9 收起 理由
yjwdjfqb + 9 感谢老师,耐心解答!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 19:55 , Processed in 0.871416 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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