2017-12-25 34 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가 sheet 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을 사용할 수 있습니다.

내가하는 일에 100 % 명확하지 않지만 특정 셀 참조 (예 : 아래 MyCell과 같은 개체)가있는 경우 예를 기반으로 다음과 같이 수정할 수 있습니다.

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에 대한 자세한 정보가 있습니다.