2017-12-25 26 views
0

ではなく、メッセージボックスの、私は、「F5( から値 『PL』をカウントする必要があります(」のVBA COUNTIF

Sub Test() 

Dim wSheet As Worksheet 
Dim myempid As Variant 

For Each wSheet In Worksheets 

    Select Case (wSheet.Name) 

     Case "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" 

     empid2 = Worksheets("DB").Range("C13").Value2 

     With Worksheets(wSheet.Name) 

      'locate the row for the value 
      myempid = Application.Match(empid2, .Columns("D"), 0) 

      If IsError(myvalueRow) Then 
       Debug.Print "empid not found in column D" 
       Exit Sub 
      End If 

      If myempid >= 0 Then 
       MsgBox ("Hi") 

      '*** 

の間に以下のコードとコメントを見つけてください")たとえば、myempidがシートjanの_ colの範囲(" D8 ")にある場合、(F8:AJ8)からカウントする必要があります。 _ 'myempidと一致するすべてのシートのカウント(PL)の合計がmsgboxに表示されます。


  End If 
     End With 

     Case Else 

    End Select 

Next wSheet 

End Sub 
+0

ようこそスタックオーバーフロー!あなたが達成しようとしていることは少し不明です。どのような種類のデータを扱っていますか? 'C13 'はどのようにマクロをトリガーするのですか? 'COUNTIF'の例題を探してみましたか?何を試しましたか?また、[ツアー]、[mcve]、[ask]をチェックしてください。 – ashleedawg

+0

シートのセル変更でコードを追加したため、C13がマクロをトリガーします。 countを検索しましたが、(janからdecへ)シートのすべてのカウントを計算する方法がわかりません。 行Dには行Dに一意のIDが含まれています。このIDはシートDB(c13)の特定のセルに入力されています。 これがクリアであることを希望します – aji

+0

^^コラムD?シートDBのセルC13にIDを入力すると、everysheetの各列DにこのIDのカウントが必要ですか? 12枚の中のどこでもカウントできますか?この番号はどこに返されますか?期待された結果を収めた実例を私たちに提示すれば助けになるかも – QHarr

答えて

0

あなたは範囲オブジェクトからセルの列番号を返すためにRange.Columnを使用することができます。 Application.WorksheetFunction.CountIfを使用して、特定の値を含む範囲内のセルをカウントすることもできます。

具体的なセル参照(たとえば、MyCellのようなオブジェクト)がある場合、あなたの例に基づいて、私は100%明確ではありません。

Sub myCountIf() 
    Dim myCell As Range 
    Set myCell = Range("D8") 
    MsgBox Application.WorksheetFunction.CountIf(Sheets("DB").Range("F" & myCell.Column & ":AJ" & myCell.Column), "PL") 
End Sub 

WorksheetFunction.CountIf Methodの詳細はこちらです。