大家好,请教一个问题,如何通过EXECL VBA实现下面功能,有三列,第一列是款号,第二列是颜色,第三列是数量,通过判断款号和颜色相同的,数量相加,保留相同款号和颜色的最上面一行,其他行都自动删除?请高手相助,谢谢!

解决方案 »

  1.   

    1.先排序,按第一列,第二列
    2.oldstr1=thisworkbook.worksheets("sheet1").cells(2,1).value
      oldstr2=thisworkbook.worksheets("sheet1").cells(2,2).value
      for i=3 to thisworkbook.worksheets("sheet1").usedrange.row.count
          if thisworkbook.worksheets("sheet1").cells(i,1).value=oldstr1 and thisworkbook.worksheets("sheet1").cells(i,2).value=oldstr2 then
             thisworkbook.worksheets("sheet1").cells(i-1,3).value=thisworkbook.worksheets("sheet1").cells(i-1,3).value +thisworkbook.worksheets("sheet1").cells(i,3).value '相加
               thisworkbook.worksheets("sheet1").Rows(str(i) & ":" & str(i)).Select
              Selection.Delete Shift:=xlUp
              i=i-1
          else
              oldstr1=thisworkbook.worksheets("sheet1").cells(i,1).value
              oldstr2=thisworkbook.worksheets("sheet1").cells(i,2).value      end if
      next i