2016-05-24 98 views
0

我需要編寫一個宏,輸入countifs公式到單元格無法設置countifs公式與單元格宏vba excel

我的錯誤是什麼?

Dim ReferSheet As String 
ReferSheet = ActiveSheet.Name 

ActiveCell.Offset(RowOffSet:=0, ColumnOffset:=1).Select 
ActiveCell.Formula = "=Application.WorksheetFunction.CountIfs(Worksheets(ReferSheet).Range("D8:D1103"), " >= " & Worksheets("Display").Range("C9"), Worksheets(ReferSheet).Range("D8:D1103"), " <= " & Worksheets("Display").Range("H9"), Worksheets(ReferSheet).Range("L8:L1103"), " > " & 0)" 
+0

一般與要寫入到從VBA工作表中公式:你可以先寫在作品的公式heet,然後使用宏記錄器查看VBA中語法的外觀(開始錄製>使用公式> F2進入單元格(或單擊單元格)> Enter>停止錄製 – Sun

回答

1

嘗試以下操作:

  1. 我建立了一箇中間字符串,並用debug.print作爲檢查字符串以確保它是你想要的一種手段。
  2. 一旦你確定你有你想要什麼,你可以消除中間串和Debug.Print語句,並直接在ActiveCell.Formula

代碼分配使用的公式...

Sub t1() 
Dim ReferSheet As String 
Dim formulaStr As String 

    ReferSheet = ActiveSheet.Name 

    ActiveCell.Offset(RowOffSet:=0, ColumnOffset:=1).Select 
    formulaStr = "=CountIfs($D$8:$D$1103," & """>=""" & " & $C$9," & "$D$8:$D$1103," & _ 
        """<=""" & " & $H$9," & "$L$8:$L$1103," & """>0""" & ")" 
    Debug.Print formulaStr 
    ActiveCell.Formula = formulaStr 
End Sub 

結果...

=COUNTIFS($D$8:$D$1103,">=" & $C$9,$D$8:$D$1103,"<=" & $H$9,$L$8:$L$1103,">0") 
相關問題