ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] VBA 计算差值

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-12-19 14:20 | 显示全部楼层 |阅读模式
本帖最后由 On_fire 于 2022-12-19 15:30 编辑

VBA 计算差值
*
Sheet1是源数据,
Range(“G26:T27”)是要判断的区域
区域中, 26行左到右, 顺序是分组号 ( *有合并格, 是变量* )
区域中, 27行左到右, 顺序是位值号 ( 单一格 )
*
代码逻辑如下,
1.      左到右先取第27行的位值号
2.      再取对应同列的第26行分组号 (*需判断合并格, 是变量)
3.      将位值号,减去, 分组号,输出结果到同列的第12行,加粗变红
*
模拟过程在Sheet1(2)
*
有点难度,
恳请大神, 老师出手帮忙谢谢!!!

Diff.zip

9.11 KB, 下载次数: 14

TA的精华主题

TA的得分主题

发表于 2022-12-19 14:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
模拟结果表不详细呀

TA的精华主题

TA的得分主题

发表于 2022-12-19 14:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
最好将12行得到的结果,加个运算过程

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-19 15:14 | 显示全部楼层
鄂龙蒙 发表于 2022-12-19 14:55
最好将12行得到的结果,加个运算过程

谢谢老师关注,
比如K,
27行的9的位值 = 5 ( 标绿红字 )
26行的9分组号 = 3 ( 合并格 )
5 – 3 = 2 ( 12行: +2 )

Diff.jpg

TA的精华主题

TA的得分主题

发表于 2022-12-19 15:19 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
看了几遍,硬是没理解这个结果与描述的关系

TA的精华主题

TA的得分主题

发表于 2022-12-19 15:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼主附件中模拟的结果是不是全的?如果不全的话,请模拟全一些,便于其他人理解
楼主的很多帖子,都有对应的固化解题思路,这个很有特点,

但是每个人对问题的处理思路不一定相同,还是建议把需求描述清楚先。

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-19 15:31 | 显示全部楼层
liulang0808 发表于 2022-12-19 15:20
楼主附件中模拟的结果是不是全的?如果不全的话,请模拟全一些,便于其他人理解
楼主的很多帖子,都有对应 ...

谢谢版主关注, 已经重新上传模拟文件

TA的精华主题

TA的得分主题

发表于 2022-12-19 15:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub 按钮1_Click()
    Application.ScreenUpdating = False
    For j = 1 To 14
        Cells(26, j + 6).Select
        x = Selection(1).Value
        If Len(x) > 0 Then
            y = j - x
            If y > 0 Then
                Cells(11, j + 6) = "'+" & y
                Cells(11, j + 6).Font.Bold = True
                Cells(11, j + 6).Font.ColorIndex = 3
            End If
        End If
    Next j
    Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

发表于 2022-12-19 15:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
按照模拟结果猜的,代码结果再11行

Diff.zip

17.74 KB, 下载次数: 5

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-19 15:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
gwjkkkkk 发表于 2022-12-19 15:19
看了几遍,硬是没理解这个结果与描述的关系

老师好,

比如 :K列,
27行的9的位值 = 5 ( 标绿红字 )
26行的9的分组号 = 3 ( 合并格 )
5 – 3 = 2 ( K列9的第12行: +2 )
*
再比如: R列,
27行的8的位值 = 12 ( 标绿红字 )
26行的8的分组号 = 8 ( 合并格 )
12 – 8 = 4 ( R列8的第12行: +4 )
*
这样说明, 清楚吗?

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

本版积分规则

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

GMT+8, 2024-11-20 06:15 , Processed in 0.042375 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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