ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 自动填写数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-6-10 15:52 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
自动填写数据  详见附件

自动填写数据.zip

10.14 KB, 下载次数: 23

TA的精华主题

TA的得分主题

发表于 2019-6-10 16:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
附件中就一组数据,如何能找出规律?

TA的精华主题

TA的得分主题

发表于 2019-6-10 16:25 | 显示全部楼层
eqzh 发表于 2019-6-10 16:13
附件中就一组数据,如何能找出规律?

猜 呗,数据咋来的都不写清楚,发个让人家猜的

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-11 17:43 | 显示全部楼层
eqzh 发表于 2019-6-10 16:13
附件中就一组数据,如何能找出规律?

左边第三行开始到最后就是算体积的  左边第一行第二行是是对应的填到右边即可

TA的精华主题

TA的得分主题

发表于 2019-6-11 23:00 | 显示全部楼层
见附件
Sub test()
  Dim Str As String
  Dim i As Long
  Dim MyRng As Range
  Dim Arr
  Set MyRng = Application.InputBox(prompt:="输入单元格区域或者直接选取单元格", Type:=8)
  If MyRng = "" Then Exit Sub
  [I2] = MyRng.Value      'I2单元格值为选择单元格的区域
   Str = Cells(MyRng.Column + 1, MyRng.Row)
   With CreateObject("VBSCRIPT.REGEXP")
        .Global = True
        .Pattern = "[a-zA-Z]"
        Str = .Replace(Str, "")
    End With
  spt = Split(Str, "/")
  i = 0:  ctns = VBA.Trim(spt(i)): [J2] = ctns: [N2] = ctns        'J2和N2单元格值
  i = i + 1: Parcel = VBA.Trim(spt(i)): [M2] = Parcel   'M2单元格值
  i = i + 1: GW = VBA.Trim(spt(i)): [K2] = GW           'K2单元格值
  ReDim Arr(1 To 4)
  For i = 1 To 4
    Arr(i) = Cells(MyRng.Column + i + 1, MyRng.Row)
    A = Split(Arr(i), "/")
    B = Evaluate(A(0)) * A(1) / 1000000
    CBM = (CBM + B)
  Next
    [L2] = CBM
    [L2].NumberFormatLocal = "0.00_ "
    [Q2] = [L2]
    [Q2].NumberFormatLocal = "0.00_ "
End Sub
111.gif

自动填写数据.zip

16.41 KB, 下载次数: 10

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-12 11:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
excel玉米 发表于 2019-6-11 23:00
见附件
Sub test()
  Dim Str As String

很厉害呢  但是算体积的时候  有时候 不止三行  
30*40*50/1
39*38*23/1
50*50*34/1
50*50*65/37
91*61*41/1
有四行或者五行 怎么办呀

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-12 11:47 | 显示全部楼层
excel玉米 发表于 2019-6-11 23:00
见附件
Sub test()
  Dim Str As String

可能是因为cbm(体积)您不太理解  如
50*50*65/37
91*61*41/1 其实就是50*50*65*37+91*61*41*1=6240091立方cm=6.24立方m

TA的精华主题

TA的得分主题

发表于 2019-6-12 20:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
夷陵老祖 发表于 2019-6-12 11:39
很厉害呢  但是算体积的时候  有时候 不止三行  
30*40*50/1
39*38*23/1

改成这样子,A1单元格是AWB No.,从A2单元格取得Ctns,G.W.,Parcel这三个数值,A3及以下单元格是计算CBM体积的。现在不止三行的也可以计算了。附件不传了,你自己修改下。PS:下次提问题要尽可能提出可能会出现的情况,因为你的数据量太少,我以为就只有三行了。
Sub test()
  Dim Str As String
  Dim i As Long
  Dim MyRng As Range
  Dim Arr, Brr
  Arr = [A1].CurrentRegion
  If UBound(Arr) = 0 Then Exit Sub
  [I2] = Arr(1, 1)     'I2单元格值为选择单元格的区域
   Str = Arr(2, 1)
   With CreateObject("VBSCRIPT.REGEXP")
        .Global = True
        .Pattern = "[a-zA-Z]"
        Str = .Replace(Str, "")
    End With
  spt = Split(Str, "/")
  i = 0:  ctns = VBA.Trim(spt(i)): [J2] = ctns: [N2] = ctns        'J2和N2单元格值
  i = i + 1: Parcel = VBA.Trim(spt(i)): [M2] = Parcel   'M2单元格值
  i = i + 1: GW = VBA.Trim(spt(i)): [K2] = GW           'K2单元格值
  For i = 3 To UBound(Arr)
    A = Split(Arr(i, 1), "/")
    B = Evaluate(A(0)) * A(1) / 1000000
    CBM = (CBM + B)
  Next
    [L2] = CBM
    [L2].NumberFormatLocal = "0.00_ "
    [Q2] = [L2]
    [Q2].NumberFormatLocal = "0.00_ "
End Sub

TA的精华主题

TA的得分主题

发表于 2019-6-12 20:27 | 显示全部楼层
夷陵老祖 发表于 2019-6-12 11:47
可能是因为cbm(体积)您不太理解  如
50*50*65/37
91*61*41/1 其实就是50*50*65*37+91*61*41*1=62400 ...

我是按照你的这个计算方式来计算的。因为参照你的例子,应该要采用单位换算的对吗?91mm*61mm*41mm这一块板换算成立方米,是要除以1000000的。如果不是,请自己修改 B = Evaluate(A(0)) * A(1) / 1000000这句。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-13 09:49 | 显示全部楼层
excel玉米 发表于 2019-6-12 20:23
改成这样子,A1单元格是AWB No.,从A2单元格取得Ctns,G.W.,Parcel这三个数值,A3及以下单元格是计算CBM ...

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

本版积分规则

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

GMT+8, 2024-3-28 23:08 , Processed in 0.048463 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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