ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

导入数据后,把单位包改成公斤,数量值相应增加。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-6-24 11:13 | 显示全部楼层 |阅读模式
每月做账,要涉及到工作表中单位和数量的转换,要实现下面的效果,麻烦大神帮忙解决,在此表示感谢!

1、导入每月数据
2、把E7,E8单元格中的包替换成公斤
3、把F7,F8单元格中的数量值改为1062546875(按每包25公斤计算)


测试.rar

27.18 KB, 下载次数: 14

TA的精华主题

TA的得分主题

发表于 2024-6-24 11:32 | 显示全部楼层
关键字:iif
GIF 2024-06-24 11-31-07.gif

测试.zip

31.45 KB, 下载次数: 11

TA的精华主题

TA的得分主题

发表于 2024-6-24 11:33 | 显示全部楼层
Sub limonet()
    Dim Cn As Object, StrSQL$
    Set Cn = CreateObject("Adodb.Connection")
    Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.Path & "\取得发票.xlsx"
    StrSQL = "Select 销方名称,数电票号码,货物或应税劳务名称,iif(单位='包','公斤',单位),iif(单位='包',25,1)*数量,单价,金额,税率,税额,价税合计,开票日期 From [信息汇总表$]"
    Range("B10").CopyFromRecordset Cn.Execute(StrSQL)
End Sub

TA的精华主题

TA的得分主题

发表于 2024-6-24 11:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
1719200200709.png

TA的精华主题

TA的得分主题

发表于 2024-6-24 11:37 | 显示全部楼层
Sub s() With Sheet1     .Range("e7:e8").Value = "公斤"     .Range("f7") = .Range("f7") * 25     .Range("f8") = .Range("f8") * 25 End With End Sub

TA的精华主题

TA的得分主题

发表于 2024-6-24 11:38 | 显示全部楼层
测试.rar (29.54 KB, 下载次数: 10)

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-24 12:52 | 显示全部楼层

完美的解决了工作中的问题,感谢各位大神相助。

TA的精华主题

TA的得分主题

发表于 2024-6-24 13:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-6-24 13:03 | 显示全部楼层
JS代码,供参考
  1. function 导入数据(){
  2.         const bt=ThisWorkbook.Sheets.Item("原材料发票入账").Range("a2:l2").Value2[0];
  3.         [ChDrive,ChDir].forEach(fn=>fn(ThisWorkbook.Path));
  4.         let fname=Application.GetOpenFilename("Excel文件","*.xls*");
  5.         if (fname==false) return;
  6.         Workbooks.Open(fname);
  7.         let arr=Range("a1").CurrentRegion.Value2;
  8.         let res=arr.slice(1).map((x,i)=>{
  9.                 if (x[13]=="包") {x[13]="公斤", x[14]=x[14]*25};                //替换}
  10.                 return bt.map(y=>x[arr[0].indexOf(y)]);                                        //提取数据
  11.         })
  12.         ActiveWorkbook.Close(false);
  13.         Sheets.Item("原材料发票入账").Range("a3").Resize(res.length, res[0].length).Value2=res;
  14. }
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-6-24 13:04 | 显示全部楼层
附件,WPS打开测试

20240624_测试.zip

49.63 KB, 下载次数: 2

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

本版积分规则

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

GMT+8, 2024-11-17 19:04 , Processed in 0.042730 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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