2017-02-25 3 views
1

Ich habe dieses Stück VBA-Code;Highlighlight eine Zelle in VBA

Option Explicit 

Function GradeScore(score As Integer) As String 
    'Calculate grade based on the score given 

    ThisWorkbook.Activate 

    If score > 100 Then 
     ActiveCell.Offset(0, -1).Font.Background = rgbRed 
     MsgBox "Score can not be more than 100%" 
     Exit Function 
    End If 

    If score < 0 Then 
     ActiveCell.Offset(0, -1).Font.Background = rgbRed 
     MsgBox "Score can not be less than 0%" 
     Exit Function 
    End If 

    Select Case score 
     Case Is >= 75 
      GradeScore = "A" 

     Case Is >= 70 
      GradeScore = "B+" 

     Case Is >= 60 
      GradeScore = "B" 

     Case Is >= 50 
      GradeScore = "C" 

     Case Is >= 45 
      GradeScore = "D" 

     Case Else 
      GradeScore = "E" 

    End Select 

End Function 

Wenn er gestartet wird alles funktioniert mit Ausnahme der Spitzlichtnäpfchen Code

ActiveCell.Offset(0, -1).Font.Background = rgbRed 

Meine Vermutung ist, dass es nicht in die Zelle verwiesen wird, wählen. Wie kann ich das erreichen?

+0

Sie wollen sein 'font color' rot oder' Zelle Hintergrund color' rot? – harun24hr

+0

@ harun24hr, ich will Zelle Hintergrundfarbe rot, obwohl weder die Schriftart in meinem vorherigen Lauf geändert. – Amani

+1

Verwenden Sie es als UDF, um von Excel UI oR aufgerufen zu werden, um in einem Makro aufgerufen zu werden? – user3598756

Antwort

2

Versuchen Sie, diese -

ActiveCell.Offset(0, -1).Interior.Color = rgbRed 
Verwandte Themen