2016-05-24 2 views
0

エクセルVBAマクロでセルするCOUNTIFS式を設定することはできませんか?は、私が入力COUNTIFS式は私のミスで何</p> <p>を細胞にすることをマクロを記述する必要が

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で構文がどのように見えるかを確認します(レコーディングを開始>数式> 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 

結果...あなたはVBAからワークシートに書き込みたいの式で一般的に

=COUNTIFS($D$8:$D$1103,">=" & $C$9,$D$8:$D$1103,"<=" & $H$9,$L$8:$L$1103,">0") 
関連する問題