ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 老师们,由于公司系统只能显示单价两位小数,麻烦设计下vba

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-4-23 21:53 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 南柯两梦 于 2023-4-23 22:57 编辑

麻烦查看附件。
微信截图_20230423215535.png

新建 Microsoft Excel 工作表.zip

11.94 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2023-4-23 22:03 | 显示全部楼层
Sub 按钮1_Click()
    arr = [a1].CurrentRegion
    brr = [a1].Resize(UBound(arr) * 2, UBound(arr, 2))
    r = 1
    For j = 2 To UBound(arr)
        If arr(j, 5) * 100 Mod arr(j, 4) = 0 Then
            r = r + 1
            For i = 1 To UBound(arr, 2) - 1
                brr(r, i) = arr(j, i)
            Next i
            brr(r, i) = arr(j, 5) / arr(j, 4)
        Else
            x = Int(arr(j, 5) * 100 / arr(j, 4))
            For i = 1 To arr(j, 4)
                If i * x + (arr(j, 4) - i) * (x + 1) = arr(j, 5) * 100 Then
                    r = r + 1
                    For k = 1 To UBound(arr, 2) - 1
                        brr(r, k) = arr(j, k)
                        brr(r + 1, k) = arr(j, k)
                    Next k
                    brr(r, 4) = i
                    brr(r + 1, 4) = arr(j, 4) - i
                    brr(r, 6) = x / 100
                    brr(r + 1, 6) = (x + 1) / 100
                    brr(r, 5) = brr(r, 4) * brr(r, 6)
                    brr(r + 1, 5) = brr(r + 1, 4) * brr(r + 1, 6)
                    r = r + 1
                    Exit For
                End If
            Next i
        End If
    Next j
    [o1].Resize(r, UBound(brr, 2)) = brr
End Sub

TA的精华主题

TA的得分主题

发表于 2023-4-23 22:03 | 显示全部楼层
附件内容供参考。。。。。

新建 Microsoft Excel 工作表.zip

20.57 KB, 下载次数: 26

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-23 22:34 | 显示全部楼层
本帖最后由 南柯两梦 于 2023-4-23 22:57 编辑
liulang0808 发表于 2023-4-23 22:03
附件内容供参考。。。。。

厉害,这么快出结果。谢谢大神!

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-23 22:35 | 显示全部楼层
liulang0808 发表于 2023-4-23 22:03
Sub 按钮1_Click()
    arr = [a1].CurrentRegion
    brr = [a1].Resize(UBound(arr) * 2, UBound(arr,  ...

试了很多次,验证数据成功。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-5 10:20 | 显示全部楼层
本帖最后由 南柯两梦 于 2023-5-5 10:42 编辑
liulang0808 发表于 2023-4-23 22:03
附件内容供参考。。。。。

您好,我試了這個,發現有個bug,第12行數據會漏掉,是代碼問題嗎,因為公司用的是繁體系統,有影響嗎,我再試了試,發現有些數值代碼沒反應、 image.png ,比如數量是8,總價70.74,單價是8.8425時候代碼無作用。
image.png
image.png

零件入库模板.rar

32.78 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2023-5-5 12:37 | 显示全部楼层
南柯两梦 发表于 2023-5-5 10:20
您好,我試了這個,發現有個bug,第12行數據會漏掉,是代碼問題嗎,因為公司用的是繁體系統,有影響嗎,我 ...

要组合出总价,允许两条拆分条目的单价价格差是多少?未必能就能匹配出来的

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-5 16:26 | 显示全部楼层
liulang0808 发表于 2023-5-5 12:37
要组合出总价,允许两条拆分条目的单价价格差是多少?未必能就能匹配出来的

我这个用手动算的。
WeChat 截圖_20230505153443.png

TA的精华主题

TA的得分主题

发表于 2023-5-5 19:00 | 显示全部楼层
南柯两梦 发表于 2023-5-5 16:26
我这个用手动算的。

精度导致的,调整了,看看能不能满足需求吧

零件入库模板.zip

35.77 KB, 下载次数: 3

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-7 11:24 | 显示全部楼层
liulang0808 发表于 2023-5-5 19:00
精度导致的,调整了,看看能不能满足需求吧

可以了,非常感谢。学了vba代码初级,跟你这个差距好大啊。看不懂你的代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 06:56 , Processed in 0.039625 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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