美文网首页
VBA数组解套

VBA数组解套

作者: 叶知行 | 来源:发表于2017-07-08 14:51 被阅读26次

原始数据表

源数据

套装构成表

套装构成表

要求:【原始数据表】中产品型号为套装的数据,要根据【套装构成表】拆解成所有套装数据,比如【原始数据表】中[A套装],要拆成4条数据,见【套装构成表】中的所有[A套装]构成,同时【原始数据表】中的 [数量] 要和【套装构成表】中 [套装用量]要相乘。

结果:

结果
Sub 解套()
    Dim arr, brr, crr(1 To 66666, 1 To 4)
    arr = Sheet1.[a1].CurrentRegion'原始数据表
    brr = Sheet2.[a1].CurrentRegion'套装构成表
    For i = 2 To UBound(arr)
        If InStr(arr(i, 1), "套装") = 0 Then'如果原始数据表中的产品型号不是套装
            k = k + 1'计数
            For j = 1 To UBound(arr, 2)'将整条数据放进crr数组
                crr(k, j) = arr(i, j)
            Next
        Else'如果原始数据表中的产品型号是套装
            For m = 2 To UBound(brr)'遍历套装构成表
                If arr(i, 1) = brr(m, 1) Then'如果是套装名相同
                    k = k + 1'计数,并向数组crr写入数据
                    crr(k, 1) = brr(m, 2)'产品型号
                    crr(k, 2) = arr(i, 2)'客户
                    crr(k, 3) = arr(i, 3) * brr(m, 3)'数量*套装用量
                    crr(k, 4) = arr(i, 4)'日期
                End If
            Next
        End If
    Next
    Sheet3.[a2:d66666].ClearContents'清空数据存放区域
    Sheet3.[A2].Resize(k, 4) = crr'写入拆解后的数据
End Sub
select b.产品型号,a.客户,a.数量*b.套装用量 as 数量,a.交货期 
from [原始表$] a 
inner join 
[套装构成表$] b 
on a.产品型号=b.套装名  
union all  
select 产品型号,客户,数量,交货期 
from  [原始表$] 
where 产品型号 not like "%套装"
SQL

示例文件下载:

链接: http://pan.baidu.com/s/1nvsQ3aT 密码: 1g66

相关文章

  • VBA数组解套

    原始数据表 套装构成表 要求:【原始数据表】中产品型号为套装的数据,要根据【套装构成表】拆解成所有套装数据,比如【...

  • VBA 知识

    VBA 编程基础 Excel VBA入门(二)数组和字典 Excel VBA 的可变类型Variant ed2k:...

  • python——numpy库入门(1)

    如果对VBA的数组有略微了解,那么对numpy会有相应的帮助,记得半年前看VBA数组,完全不理解,它还是有些抽象的...

  • VBA之数组

    数组的声明 一维数组 二维数组 动态数组

  • ExcelVBA——数组运用工作表函数

    在工作表支持数组的函数,很多也支持VBA数组。返回结果,当然也是一个数组。嘿嘿。如sumif,countif,ma...

  • 使用VBA数组公式

    1. 数组的好处 ①可作为辅助列,临时存放数值②大大加快运算的效率 2. 如何定义数组 dim arr() 3. ...

  • 二十讲 数组1 基础

    一 什么是VBA数组 数组可以大大节省系统运算时间,提高效率。数组就是储存一组数据的数据空间,数据类型可以是数字,...

  • vba遍历数组的两种方法

    vba遍历数组的两种方法 这里采用Do While Loop 循环, 重点是得到数组的索引最大值U。用UBoun...

  • VBA字典对象操作技巧

    VBA 中集合的功能比较弱,常见的有数组 (array) 、集合 (Collection)和字典,其中字典是 Ke...

  • 基于VBA for Excel批量下载图片教程系列(五)——数组

    上一篇文章主要介绍了数组的声明和VBA中最基本的For循环语句和If条件判断语句,重点分析了数组的Dim和ReDi...

网友评论

      本文标题:VBA数组解套

      本文链接:https://www.haomeiwen.com/subject/lczdhxtx.html