2017-05-16 6 views
0

したがって、他のセル(L:LおよびK:K)の他の2つの値を考慮してスコアを決定する式があります。今では、指定された参照セル(L2、K2、M2)に対してのみ唯一の働きをしていますが、その代わりに、列全体で機能するようにしようとしています。ここで単一セル参照を全体列参照に変換するExcel VBA

は、VBAのコードは次のとおりです。周り

Sub ExplicitScore() 
    If Range("L2").Value = "Healthcare" Then 
     Select Case Range("K2").Value 
     Case "Executive" 
      Range("M2").Value = 60 
     Case "IT", "Clinical", "Finance/Revenue Cycle", "Security/Risk/Compliance", "Patient Access/Records" 
      Range("M2").Value = 50 
     Case "HIM", "Patient Quality/Safety" 
      Range("M2").Value = 40 
     Case "Pharmacy", "Telecommunications", "Admin" 
      Range("M2").Value = 20 
     Case Else 
      Range("M2").Value = 10 
     End Select 
    Else 
     Select Case Range("K2").Value 
     Case "Executive", "IT" 
      Range("M2").Value = 10 
     Case Else 
      Range("M2").Value = 0 
     End Select 
    End If 

End Sub 
+0

L2、K2、M2、3行目、4行目などで最初の空の行(または他の事前定義された行)まで機能させたい場合は、 ? – BruceWayne

+0

Yessir!私はL2、L3 ... Lnの値を与えて、M2、M3 ... Mnに結果を入れるべき各行の基準となるK2、K3 ... Knの値を与えました – Tyler

答えて

0

偉大な作業ではなく、サブよりも、関数を作成することです。条件を変数に設定します。

Function ExScore(Industry, JobCategory) 
    If Industry = "Healthcare" Then 
     Select Case JobCategory 
     Case "Executive" 
      ExScore = 60 
     Case "IT", "Clinical", "Finance/Revenue Cycle", "Security/Risk/Compliance", "Patient Access/Records" 
      ExScore = 50 
     Case "HIM", "Patient Quality/Safety" 
      ExScore = 40 
     Case "Pharmacy", "Telecommunications", "Admin" 
      ExScore = 20 
     Case Else 
      ExScore = 10 
     End Select 
    Else 
     Select Case JobCategory 
     Case "Executive", "IT" 
      ExScore = 10 
     Case Else 
      ExScore = 0 
     End Select 
    End If 

End Function