Board logo

標題: 有關SUMIF VBA 寫法? [打印本頁]

作者: lp986749    時間: 2015-2-7 21:49     標題: 有關SUMIF VBA 寫法?

Range("H400").Select       'XX銀行轉帳部分(M)總數合計 第2~399列
ActiveCell.FormulaR1C1 = "=SUMIF(R[-398]C[-1]:RC[-1],""M"",R[-398]C[-2]:RC[-2])"

SUMIF 巨集一部分如上,意思即將XX銀行轉帳部分(M)總數合計列於轉帳明細表最後一列,今日有明細表250行時將轉帳部分(M)總數合計列於251行,而非固定於H400位置,假如明細表100行時將轉帳部分(M)總數合計列於101行,而非固定於H400位置,隨明細表多寡而變動位置,請問高手能告知上述 EXCEL VBA如何寫?
作者: rouber590324    時間: 2015-2-9 10:37

如下

X = Sheet1.[A65536].End(xlUp).Row+1
Sheet1.Cells(X, 8).Select  'XX銀行轉帳部分(M)總數合計 第2~399列
ActiveCell.FormulaR1C1 = "=SUMIF(R[-398]C[-1]:RC[-1],""M"",R[-398]C[-2]:RC[-2])"
作者: lp986749    時間: 2015-2-9 19:28

感激撥空答覆此問題
ActiveCell.FormulaR1C1 = "=SUMIF(R[-398]C[-1]:RC[-1],""M"",R[-398]C[-2]:RC[-2])"

ActiveCell.FormulaR1C1 = "=SUMIF(R[-399]C[-1]:RC[-1],""MX"",R[-399]C[-2]:RC[-2])"

ActiveCell.FormulaR1C1 = "=SUMIF(R[-400]C[-1]:RC[-1],""MH"",R[-400]C[-2]:RC[-2])"
我的意思是 R[-399]C[-1]:RC[-1],R[-398] , R[-399] , R[-400] ..等等用變數如 X+1 ,  X +2 來表示嗎?
作者: rouber590324    時間: 2015-2-13 11:56

DEAR SIR
  試試如下     
Sub AA()
X = Sheet1.[A65536].End(xlUp).Row + 1
Range("H1").Select       'XX銀行轉帳部分(M)總數合計 第2~399列
ActiveCell.FormulaR1C1 = "=SUMIF(R[-" & 65538 - X & "]C[-1]:RC[-1],""M"",R[-" & 65538 - X & "]C[-2]:RC[-2])"

End Sub
作者: stillfish00    時間: 2015-2-13 13:40

本帖最後由 stillfish00 於 2015-2-13 13:57 編輯

回復 3# lp986749
你的   "=SUMIF(R[-398]C[-1]:RC[-1],""M"",R[-398]C[-2]:RC[-2])"
R[-398] 既然指的是從第2列開始,就用絕對位址 R2 就好,不要用相對的
也就是整個公式改為  "=SUMIF(R2C[-1]:RC[-1],""M"",R2C[-2]:RC[-2])"

至於決定合計的位置,要怎麼找到最後一筆,
要根據你的檔案哪一欄一定都有資料去找比較好,附檔會比較清楚點


另外 你1樓的公式其實是第2~400列,不是2~399,附檔會比較清楚點
作者: lp986749    時間: 2015-2-13 22:21

區別碼        銀行碼        保留        帳號        交易日期        交易金額(F欄)        交易摘要(G)        借貸別
1        '005'        0        '012001090127'        20150206        100000                    MX                         1
1        '005'        0        '012001090127'        20150206        347415                       MR                   1
1        '005'        0        '012001090127'        20150206        129396                      MH                       1
1        '005'        0        '012001090127'        20150206        214039                  MR                      1
1        '005'        0        '012001090127'        20150206        28000                       M                      1
1        '005'        0        '012001090127'        20150206        40000                      M                     1
1        '005'        0        '012001090127'        20150206        1262001              MR                    1
1        '005'        0        '012001090127'        20150206        2231939             MR                   1
1        '005'        0        '012001090127'        20150206        786647                     MX                  1

    Range("H300").Select    'XX銀行轉帳部分(M)總數合計
    ActiveCell.FormulaR1C1 = "=SUMIF(R[-298]C[-1]:RC[-1],""M"",R[-298]C[-2]:RC[-2])"
    Selection.Style = "Comma"
    Selection.NumberFormatLocal = "_-* #,##0.0_-;-* #,##0.0_-;_-* ""-""??_-;_-@_-"
    Selection.NumberFormatLocal = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"

    Range("H301").Select     'XX銀行轉帳部分(MH)總數合計
    ActiveCell.FormulaR1C1 = "=SUMIF(R[-299]C[-1]:RC[-1],""MH"",R[-299]C[-2]:RC[-2])"
    Selection.Style = "Comma"
    Selection.NumberFormatLocal = "_-* #,##0.0_-;-* #,##0.0_-;_-* ""-""??_-;_-@_-"
    Selection.NumberFormatLocal = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"

    Range("H302").Select       '台銀轉帳部分(MX)總數合計 第2~200列
    ActiveCell.FormulaR1C1 = "=SUMIF(R[-300]C[-1]:RC[-1],""MX"",R[-300]C[-2]:RC[-2])"
    Selection.Style = "Comma"
    Selection.NumberFormatLocal = "_-* #,##0.0_-;-* #,##0.0_-;_-* ""-""??_-;_-@_-"
    Selection.NumberFormatLocal = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
   
    Range("H303").Select       'XX銀行轉帳部分(ME5)總數合計
    ActiveCell.FormulaR1C1 = "=SUMIF(R[-301]C[-1]:RC[-1],""ME5"",R[-301]C[-2]:RC[-2])"
    Selection.Style = "Comma"
    Selection.NumberFormatLocal = "_-* #,##0.0_-;-* #,##0.0_-;_-* ""-""??_-;_-@_-"
    Selection.NumberFormatLocal = "_-* #,##0_-;-* #,##0_-;_-*   "
   
    Range("H304").Select      'XX銀行轉帳部分(MR)總數合計
    ActiveCell.FormulaR1C1 = "=SUMIF(R[-302]C[-1]:RC[-1],""MR"",R[-302]C[-2]:RC[-2])"
    Selection.Style = "Comma"
    Selection.NumberFormatLocal = "_-* #,##0.0_-;-* #,##0.0_-;_-* ""-""??_-;_-@_-"
    Selection.NumberFormatLocal = "_-* #,##0_-;-* #,##0_-;_-*   "
   
    格式如上將不同"MR" "MX" 加總 放於 H304位置 H302位置




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)