Excel精英培训网

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

[已解决]程式运行后,格式会改变

[复制链接]
发表于 2016-4-15 21:29 | 显示全部楼层 |阅读模式
本帖最后由 a543770434 于 2016-4-18 14:20 编辑

dear  

为啥我的程式运行后,格式都完全改变了。比如时间都变成###了。求帮助。。
最佳答案
2016-4-16 19:56
Sub 预约()
    x = 36
    y = Sheets(6).[m65535].End(xlUp).Row - 1
    y2 = Sheets(3).[f65535].End(xlUp).Row - 1
    ReDim arr(1 To y, 1 To x), brr(1 To y2, 1 To x)
    arr = Sheets(6).Range("A2").Resize(y, x).Value
    brr = Sheets(3).Range("A2").Resize(y2, x).Value
    For i = 1 To y2
        For i2 = 1 To y
            If brr(i, 6) = arr(i2, 13) Then
                brr(i, 30) = arr(i2, 28)
                brr(i, 31) = arr(i2, 29)
                brr(i, 32) = arr(i2, 30)
                brr(i, 36) = arr(i2, 35)
            End If
        Next
    Next
    '也可指定从Sheets(3)的哪一列到哪一列,单元格格式是文本
    Sheets(3).Range("A2").Resize(y2, x).EntireColumn.NumberFormat = "@"
    Sheets(3).Range("A2").Resize(y2, x) = brr
End Sub


输出区域设置为文本格式,就不会出现了




求助哇.zip

26.1 KB, 下载次数: 8

发表于 2016-4-15 22:11 | 显示全部楼层
建议说明:

比如哪个单元格变了,本来应该是什么。
回复

使用道具 举报

 楼主| 发表于 2016-4-16 09:12 | 显示全部楼层
爱疯 发表于 2016-4-15 22:11
建议说明:

比如哪个单元格变了,本来应该是什么。

现在的格式就是最原始的格式,缩小单元格都不会出现###,但是当运行程式后,时间就会有2016/04/06这类的变成2016/4/6,而且如果缩小单元格的话就会出现####。还有数值本来是123456789这类的运行后就会变成类似于2.000E+15这种,你可以运行下程式看看。
回复

使用道具 举报

发表于 2016-4-16 19:56 | 显示全部楼层    本楼为最佳答案   
Sub 预约()
    x = 36
    y = Sheets(6).[m65535].End(xlUp).Row - 1
    y2 = Sheets(3).[f65535].End(xlUp).Row - 1
    ReDim arr(1 To y, 1 To x), brr(1 To y2, 1 To x)
    arr = Sheets(6).Range("A2").Resize(y, x).Value
    brr = Sheets(3).Range("A2").Resize(y2, x).Value
    For i = 1 To y2
        For i2 = 1 To y
            If brr(i, 6) = arr(i2, 13) Then
                brr(i, 30) = arr(i2, 28)
                brr(i, 31) = arr(i2, 29)
                brr(i, 32) = arr(i2, 30)
                brr(i, 36) = arr(i2, 35)
            End If
        Next
    Next
    '也可指定从Sheets(3)的哪一列到哪一列,单元格格式是文本
    Sheets(3).Range("A2").Resize(y2, x).EntireColumn.NumberFormat = "@"
    Sheets(3).Range("A2").Resize(y2, x) = brr
End Sub


输出区域设置为文本格式,就不会出现了




回复

使用道具 举报

 楼主| 发表于 2016-4-18 14:28 | 显示全部楼层
爱疯 发表于 2016-4-16 19:56
Sub 预约()
    x = 36
    y = Sheets(6).[m65535].End(xlUp).Row - 1

原来是输出有问题了哇,谢谢哇
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 06:01 , Processed in 0.346996 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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