- 帖子
- 522
- 主題
- 36
- 精華
- 1
- 積分
- 603
- 點名
- 0
- 作業系統
- win xp sp3
- 軟體版本
- Office 2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2012-12-13
- 最後登錄
- 2021-7-11
|
回復 3# s7659109
試試看:
 - Private Sub CommandButton1_Click()
- Dim i, j, lastRowA, lastRowF As Integer
- Dim rng As Range
-
- With Sheets("Sheet1")
- lastRowA = .[A65536].End(xlUp).Row '取得 欄A最下面非空白列 的列號
-
- '用不重覆篩選, 將品名 篩選到 [F1]
- .[A1].Resize(lastRowA, 1).AdvancedFilter Action:=xlFilterCopy, _
- CriteriaRange:=.[A1].Resize(lastRowA, 1), CopyToRange:=.[F1], Unique:=True
-
- lastRowF = .[F65536].End(xlUp).Row '取得 欄F最下面非空白列 的列號
- Set rng = .[F1].Resize(lastRowF, 1)
-
- For i = 2 To lastRowA
-
- '取得 欄A的品名 對應到 欄F的品名 的列號
- .[E2] = Application.Match(.Cells(i, 1), rng, 0)
-
- .Cells(.[E2], 7) = .Cells(.[E2], 7) + .Cells(i, 2) '數量加總
- .Cells(.[E2], 9) = .Cells(.[E2], 9) + .Cells(i, 4) '金額加總
- Next
-
- '算單價(略,改用公式即可)
- End With
- End Sub
複製代碼 |
|