Excel精英培训网

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

[已解决]单元格格式自定义后还是按原来数字计算

[复制链接]
发表于 2016-10-20 17:29 | 显示全部楼层 |阅读模式
本帖最后由 huangxuejin 于 2016-10-21 12:53 编辑

再次求助!单元格格式自定义后还是按原来数字计算。
最佳答案
2016-10-21 11:10
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count = 1 Then
        If Target.Column = 2 Or Target.Column = 5 Then

            If Target.Value <= 24 Then
                If Target.Value > 12 Then
                    Target.NumberFormatLocal = Application.Substitute(Target.Value - 12, "0", "!0") & ""
                End If
            End If

        End If
    End If
------------------------------
红色 为 B , E 的列序号
R2.单元格格式自定义后还是按原来数字计算.rar (36.52 KB, 下载次数: 3)

单元格格式自定义后还是按原来数字计算.rar

32.19 KB, 下载次数: 9

单元格格式自定义后还是按原来数字计算,(附件附后)

 楼主| 发表于 2016-10-20 20:42 | 显示全部楼层
请问老师们,是不是VBA没有可能实现这个难题啊?这个难题对我白痴来讲确实是天大的幻想,也许对老师们来说只不过是个一般难题,哪位老师行行好帮帮我!!!
回复

使用道具 举报

发表于 2016-10-21 08:13 | 显示全部楼层
用mod函数就好了d3输入=(mod(b3-1,12)+1)*c3

评分

参与人数 1 +1 收起 理由
huangxuejin + 1 很给力

查看全部评分

回复

使用道具 举报

发表于 2016-10-21 08:24 | 显示全部楼层
R.单元格格式自定义后还是按原来数字计算.rar (38.15 KB, 下载次数: 4)

评分

参与人数 1 +1 收起 理由
huangxuejin + 1 很给力

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-10-21 08:49 | 显示全部楼层
砂海 发表于 2016-10-21 08:24
输入小数没处理

谢谢您的帮助,老师能不能设置一整列 比如 B列和E列整列,再次麻烦您帮我好吗?
回复

使用道具 举报

发表于 2016-10-21 11:10 | 显示全部楼层    本楼为最佳答案   
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count = 1 Then
        If Target.Column = 2 Or Target.Column = 5 Then

            If Target.Value <= 24 Then
                If Target.Value > 12 Then
                    Target.NumberFormatLocal = Application.Substitute(Target.Value - 12, "0", "!0") & ""
                End If
            End If

        End If
    End If
------------------------------
红色 为 B , E 的列序号
R2.单元格格式自定义后还是按原来数字计算.rar (36.52 KB, 下载次数: 3)

评分

参与人数 1 +1 收起 理由
huangxuejin + 1 赞一个

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-10-21 12:51 | 显示全部楼层
本帖最后由 huangxuejin 于 2016-10-21 12:52 编辑
砂海 发表于 2016-10-21 11:10
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count = 1 Then

再次感谢老师您在百忙之中抽出宝贵时间帮了我,祝您工作愉快!事事如意。
回复

使用道具 举报

 楼主| 发表于 2016-10-21 14:49 | 显示全部楼层
砂海 发表于 2016-10-21 11:10
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count = 1 Then

砂海老师好,还有个小小请求,输入大于13的都会显示相应的数值,就是比如输入13显示1 若想改为小于13时输入12或11或10时 它还是显示1,不能显示输入的12或11或10,有空能帮我完善一下最好,实在没空也没事,我也不好意思再占用你宝贵时间 那我就只能把格式设置回常规格式后再次输入也行。
回复

使用道具 举报

 楼主| 发表于 2016-10-21 14:49 | 显示全部楼层
本帖最后由 huangxuejin 于 2016-10-21 14:55 编辑
砂海 发表于 2016-10-21 11:10
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count = 1 Then
分享一下您的成果


A3 智能工程进度计划表.rar

50.07 KB, 下载次数: 2

回复

使用道具 举报

发表于 2016-10-21 15:42 | 显示全部楼层

                If Target.Value > 12.1 Then
                    Target.NumberFormatLocal = Application.Substitute(Target.Value - 12, "0", "!0") & ""
                Else
                    Target.NumberFormatLocal = "1"   '12.1 以下 都是1

                End If

评分

参与人数 1 +1 收起 理由
huangxuejin + 1 赞一个

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 05:01 , Processed in 0.439078 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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