我試圖一個SUMIFS式添加到細胞中,由此我需要有可變是指另一片在另一個工作簿。但是,這在我的代碼中不起作用。僅供參考,我已經打開了msoFileDialogFilePicker
的工作簿。參考變量工作表SUMIFS使用VBA
這裏是我必須添加配方的一部分,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])"
我已搜查在線的許多例子和這一個我從 this post得到它,我發現它與我的情況類似。但是,它似乎仍然無法正常工作,程序會提示我從工作簿中選擇工作表並表示找不到工作表ws.name
。選擇工作表後,公式在單元格中看起來像這樣:=SUMIFS('[&ws.name&]ASEAN (EUR)'!R[32]C[3]:R[243]C[3],'[&ws.name&]ASEAN (EUR)'!C[2], C[-1])
。
請幫我查找問題,在此先感謝!
只是這個'cl.Formula = 「= SUMIFS('」 &ws.Name&「'解決了這個問題 - [R [32] C [3]:[R [243] C [3],'」&ws.Name& 「'! - [R [33] C [2],C [-1]」',關鍵是要有空間和報價。 –