早教吧 育儿知识 作业答案 考试题库 百科 知识分享

A列编号B列名称C列规格对应行相同合并在对应列D列数量对应相加用VBA怎样编写

题目详情
A列编号B列名称C列规格对应行相同合并在对应列D列数量对应相加用VBA怎样编写
▼优质解答
答案和解析
这个有些复杂,没分数吗?请增加悬赏分!
Private Sub CommandButton1_Click()
   If MsgBox("警告!" & vbCrLf & _
           "过程不可逆转,请做好备份!"& vbCrLf & vbCrLf & _
           "开始执行程序吗?",vbInformation + vbOKCancel, _
           "警告!")<> vbOK Then Exit Sub
   Dim a, d, s, r, col, i, j, tmp
   Dim c As Range, rg As Range
   Set d = CreateObject("Scripting.Dictionary")
   Set c = Cells(1, 1).Resize(1, 4) '标题行位置
    r= Cells(65536, c.Column).End(xlUp).Row
   If r <= c.Row Then
       MsgBox "无数据!": Exit Sub
   End If
    a= c.Resize(r - c.Row + 1)
   For i = LBound(a) + 1 To UBound(a)
       tmp = Join(Array(a(i, 1), a(i, 2), a(i, 3)), "|")
       If d.Exists(tmp) Then
           d(tmp) = d(tmp) + a(i, 4)
       Else
           d(tmp) = a(i, 4)
       End If
   Next
    s= d.keys
   ReDim a(LBound(s) To UBound(s), 0 To 3)
   For i = LBound(s) To UBound(s)
       tmp = Split(s(i), "|")
       For j = LBound(tmp) To UBound(tmp)
           a(i, j) = tmp(j)
       Next
       a(i, 3) = d(s(i))
   Next
   With c.Offset(1)
       .Resize(r - c.Row).ClearContents
       .Resize(d.Count) = a
   End With
End Sub
看了A列编号B列名称C列规格对应行...的网友还看了以下:

高中物理的加速度力在计算时什么时候加负号学了牛顿定律和运动学后对负号这个东西很迷茫.有时候忘了带负  2020-06-06 …

格列佛游记的几个思考题:1.格列佛为什么要参加“羚羊号”的航行?2.格列佛为什么能够脱险?他是怎样  2020-06-18 …

c语言程序征求:每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别  2020-06-26 …

随着网购热度增加,“抄号族”们也多了起。所谓“抄号族”就是到正规商场挑选货物,记下货号,然后到网店  2020-07-11 …

根据《合同法》的规定,对格式条款的理解发生争议的,应当按照通常理解予以解释。对格式条款由两种  2020-08-23 …

格物致知和心学哪个对?格物致知主张从外部事物找到规律,精通道里有所顿悟;而王阳明主张从内心出发认为认  2020-11-05 …

关于格式条款的理解我知道很多人包括有些老师在讲课时也不太注意,一提到格式条款的理解,随口会来一句做出  2020-11-07 …

编号为p----50的50盏关着的灯.规定把关着的灯打开或把开着的灯关上都叫“处理”.现在,第一次逐  2020-11-10 …

很多格式合同中都约定“最终解释权归本公司所有”。这种约定有法律效力么?虽然《合同法》第四十一条规定:  2020-11-27 …

对人的外貌和性格各自怎么提问?例如:对括号部分提问hisfatheris(handsome)对括号部  2020-12-10 …