簡體   English   中英

使用VBA在公式SUMIFS中的另一個工作簿中引用變量工作表

[英]Reference variable worksheet in another workbook in formula SUMIFS using VBA

我試圖將一個SUMIFS公式添加到單元格,我需要有一個變量,它引用另一個工作簿中的另一個工作表。 但是,這在我的代碼中不起作用。 僅供參考,我已經使用msoFileDialogFilePicker打開了工作簿。

這是我必須添加公式的部分,ws是工作表的對象:

    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    With fd
    .Title = "..."
    .AllowMultiSelect = False

    If .Show = True Then
        If .SelectedItems(1) <> vbNullString Then
            Filename = .SelectedItems(1)
        End If
    Else
        Exit Sub
    End If
    Set wb = GetObject(Filename)
    Set ws = wb.Sheets("ASEAN (EUR)")

    With ws
        YTDws.Range("$A$1:$D$" & usedRow).AutoFilter Field:=1, Criteria1:="Singapore"
        If .Range("Q20").Value = "SINGAPORE" Then
        usedRow2 = YTDws.Cells(Rows.Count, 1).End(xlUp).Row
        Set rng = Range("C2:C" & usedRow2)
        For Each cl In rng.SpecialCells(xlCellTypeVisible)
            cl.Select
            cl.FormulaR1C1 = "=SUMIFS('&ws.name&'!R[32]C[3]:R[243]C[3],'&ws.name&'!C[2], C[-1])"
        Next cl
        End If
    End With

End With

我相信問題在於這行代碼:

cl.FormulaR1C1 = "=SUMIFS('&ws.name&'!R[32]C[3]:R[243]C[3],'&ws.name&'!C[2], C[-1])"

我在網上搜索了許多做的例子,我從這篇帖子中得到了這個 ,我發現它與我的情況類似。 但是,它似乎仍然無法正常工作,程序提示我從工作簿中選擇工作表並說它找不到工作表ws.name 選擇工作表后,公式在單元格中如下所示: =SUMIFS('[&ws.name&]ASEAN (EUR)'!R[32]C[3]:R[243]C[3],'[&ws.name&]ASEAN (EUR)'!C[2], C[-1])

請幫我找到問題,提前謝謝!

幾件事

  1. 你在這里指的是哪個表Set rng = Range("C2:C" & usedRow2)
  2. SumIfs()語法是=SUMIFS(Sum_range,Criteria_range1,Criteria1 ....)
  3. 將SUMIFS()與外部工作簿一起使用時,公式如下所示

"=SUMIFS('[" & wb.Name & "]" & ws.Name & "'!" & YOUR_SUM_RANGE & ",'[" & wb.Name & "]" & ws.Name & "'!" & YOUR_CRITERIA_RANGE & "," & YOUR_CRITERIA & ")"

您只使用工作表名稱而不是工作簿名稱。

我的建議 :手動打開工作簿並輸入公式(再次手動)。 檢查公式是否有效,然后在代碼中使用該公式

可能你在join / concat字符串中有錯誤...

如果你加入/ concat字符串,你需要使用&。 例如:

sheetname = "mysheet"
Range("D5").FormulaR1C1 = "=SUM(" & sheetname & "!C[-2])"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM