Excel精英培训网

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

[已解决]遍历问题(续)

[复制链接]
发表于 2016-5-13 13:31 | 显示全部楼层 |阅读模式
本帖最后由 乐乐2006201506 于 2016-5-13 16:54 编辑

        本附件中的代码(此代码是本论坛超级版主爱疯帮忙做的,在此再次感谢他)完全可以实现清除公式的效果,解决了第一个工作表指定列身份证号码后四位都变为“0”了的问题,但是其他工作表中不同列有身份证号码的话,还是出现了身份证号码后四位都变为“0”了的问题。怎么办?能不能设置成动态的或者用代码实现任意一个工作表中指定列超过15位数字后四位变为0的问题,谢谢!
最佳答案
2016-5-13 16:27
乐乐2006201506 发表于 2016-5-13 15:52
这样完全可以,但如果不是身份证号码列,而且这样的数据列比较多的时候,是不是用您二楼发的那个 ...

要么就用2楼的方法,整表设成文本,最省事。




我改成,判断使用区域(usedrange),只要找到身份证,就设置该列为文本格式。
但有个限制条件,就是使用区域必须是从A列开始的。
如果不符合限制条件,就会错误的将其它某一列设为文本。

2.rar (38.45 KB, 下载次数: 9)

遍历文件夹修改数据3.rar

13.12 KB, 下载次数: 11

花名册测试文件.zip

37.79 KB, 下载次数: 12

发表于 2016-5-13 15:08 | 显示全部楼层
Sub demo(myPath As String, myFile As String)
   ...................
    '1)清除公式
    Set wb = Workbooks.Open(myPath & "\" & myFile)
    For i = 1 To Sheets.Count
        With Sheets(i)
            .Cells.NumberFormat = "@"
            arr = .UsedRange
            .UsedRange = arr
        End With
    Next
   ..............
    wb.Close True
    Set wb = Nothing
End Sub
回复

使用道具 举报

发表于 2016-5-13 15:19 | 显示全部楼层
1.rar (35.38 KB, 下载次数: 8)
回复

使用道具 举报

 楼主| 发表于 2016-5-13 15:52 | 显示全部楼层
爱疯 发表于 2016-5-13 15:19
只有在工作表找到"身份证号码"时,才设置"身份证号码"所在列为文本格式。

这样可以吗?

        这样完全可以,但如果不是身份证号码列,而且这样的数据列比较多的时候,是不是用您二楼发的那个代码就可以了?不但实现第一个工作表,而且实现所有工作表中的超过15位的数字可以正常显示?
回复

使用道具 举报

发表于 2016-5-13 16:27 | 显示全部楼层    本楼为最佳答案   
乐乐2006201506 发表于 2016-5-13 15:52
这样完全可以,但如果不是身份证号码列,而且这样的数据列比较多的时候,是不是用您二楼发的那个 ...

要么就用2楼的方法,整表设成文本,最省事。




我改成,判断使用区域(usedrange),只要找到身份证,就设置该列为文本格式。
但有个限制条件,就是使用区域必须是从A列开始的。
如果不符合限制条件,就会错误的将其它某一列设为文本。

2.rar (38.45 KB, 下载次数: 9)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 10:24 , Processed in 0.276228 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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