返回列表 上一主題 發帖

[發問] 請問一下函數的vba

[發問] 請問一下函數的vba

各位高手大大們好

   附件檔想請教為何無法執行,,有寫了一段vba的sumif但無法執行~求解惑 謝謝
20190513.zip (12.7 KB)
yvonne

試試

Sub AAA()
Dim M As Long
Sheets("工作表1").Select
Range("A1").Select
Sheets("工作表1").[D265536].ClearContents

For M = 2 To Sheets("工作表1").[A65536].End(xlUp).Row

Sheets("工作表1").Cells(M, 4) = Application.SumIf(Sheets("工作表2").Range("B:B"), Sheets("工作表1").Cells(M, 1), Sheets("工作表2").Range("E:E"))

Next
End Sub

TOP

回復 2# rouber590324

感謝r大回覆,, R大 用您的CODE套入SUMIFS也可以用,  這邊想請教要如何修改Code一次性將儲存格資料計算帶出呢~求協助~TKS
code能在簡化嗎???謝謝 0513.zip (14.69 KB)
yvonne

TOP

DEAR SIR
用涵數即可吧.如下 c2公式  餘以此類推

=SUMPRODUCT((工作表2!$B$2B$65536=A2)*(工作表2!$C$2C$65536=C1),工作表2!$E$2E$65536)

TOP

資料不多, 可用這個:
Sub AAA()
Dim Clmn As Range
Set Clmn = [工作表2!K2].Resize([工作表2!B65536].End(xlUp).Row - 1)
Clmn = "=B2&C2"
With [工作表1!C2].Resize([工作表1!A65536].End(xlUp).Row - 1, 3)
     .Formula = "=SUMIF(工作表2!$K:$K,$A2&C$1,工作表2!$E:$E)"
     .Value = .Value
     .Replace 0, "", Lookat:=xlWhole
End With
Clmn.ClearContents
End Sub

'================================
資料很多, 用這個:
Dim xD, Arr, Brr, i&, j&, T$
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([工作表2!E1], [工作表2!B65536].End(xlUp))
For i = 2 To UBound(Arr)
    T = Arr(i, 1) & Arr(i, 2)
    xD(T) = xD(T) + Arr(i, 4)
Next i
'----------------------------
Arr = Range([工作表1!E1], [工作表1!A65536].End(xlUp))
ReDim Brr(1 To UBound(Arr) - 1, 1 To 3)
For i = 2 To UBound(Arr)
For j = 1 To 3
    T = Arr(i, 1) & Arr(1, j + 2)
    Brr(i - 1, j) = xD(T)
Next j
Next i
'----------------------------
[工作表1!C2].Resize(UBound(Arr) - 1, 3).Value = Brr
End Sub

'>>>>

TOP

回復 5# 准提部林


    感謝淮大提供,有點難 需要看一下~~感謝*10000
yvonne

TOP

回復 5# 准提部林


    淮大 請教一下~工作表2!k2根本沒資料為什麻  您得code有 工作表2!k2跟工作表2!k2:k2
yvonne

TOP

回復 7# afu9240


K欄是用來做輔助公式, 利用完再清除,
將[生產批號]&[分類]連接成獨立字串, 即可利用來做SUMIF的[索引值],

因資料行數可能不確定,
SUMPRODUCT若做全欄引用, 可能使檔案卡死,
SUMIF公式的全欄引用, 效率比SUMIFS高.

TOP

回復 8# 准提部林


    懷大真強~~感謝懷大回覆  謝謝
yvonne

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題