2016-11-10 2 views
1

Es ist ein geschütztes Arbeitsblatt/Arbeitsmappe und ich habe einen Code, der eine Eingabeaufforderung für den Benutzer, ob das Blatt bearbeiten oder nicht, werfen wird. Zellen sind editierbar, aber das Problem ist, dass Zellen nicht mit Rahmen markiert werden. Daher ist es für den Benutzer schwierig zu wissen, an welchen Zellen er arbeitet.VBA Zellen sind nicht markiert

Ich habe 2 Blätter hier, Corefiller und Ad-Füller, wenn Drop-Down auf corefiller Blatt ist "Nein". Der Benutzer erhält eine Aufforderung, wenn er das Blatt auswählt, er klickt auf OK, um das Blatt zu bearbeiten, oder er bricht ab, wenn er nicht bearbeiten möchte.

-Code auf Blatt "Ad-Füller"

Option Explicit 

Private mMessageDisplayed As Boolean 

Private Sub Worksheet_Activate() 
    Carry 
End Sub 

-Code auf einem Modul.

Public Sub Carry() 
    If ActiveSheet.ProtectContents And Not mMessageDisplayed Then 
      mMessageDisplayed = True 
    If ThisWorkbook.Sheets("Corefiller").Range("E29") = "NO" Then 
      If MsgBox("Click OK to include Filler for this request", vbOKCancel + vbInformation) = vbOK Then 
       ThisWorkbook.Worksheets("Corefiller").Range("E29") = "YES" 
       With ThisWorkbook.Sheets("Ad-filler") 
        .Range("E13:E14").Locked = False 
       End With 
      Else 
       With ThisWorkbook.Sheets("Ad-filler") 
        .Range("E13:E14").Locked = True 
       End With 
      End If 
     Else 
     Exit Sub 
     End If 
    End If 
    End Sub 

Was ist falsch in meinem Code? Warum ist die Zelle nicht markiert? Wenn ich versuche, im Code Schutz/Schutz zu verwenden, werden Zellen auf dem ersten Blatt (Corefiller) nicht markiert und ich muss auf andere Blätter klicken und zurückkommen, um die Zelle markiert zu bekommen.

enter image description here

+1

Sie haben keine Codezeilen, die Grenzen zu jeder Zelle (n) gelten. –

+1

@ Gary'sStudent Ich meinte die übliche Grenze, die wir bekommen, wenn wir auf Zelle, beigefügten Screenshot oben klicken .. – sady

+2

Sie haben auch keinen Code zu ** Wählen Sie ** beliebige Zellen * (die würde die Grenze gelten) * –

Antwort

0

Können Sie neu starten, dies umzusetzen und prüfen, ob das Problem weiterhin besteht:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

    Cells.Interior.ColorIndex = 0 
    Target.Interior.ColorIndex = 3 

End Sub 
+0

Verwendung des obigen Codes. Ja, Zelle wird rot hervorgehoben, aber leider löst sie mein Problem nicht. Da ich nicht beabsichtige, der Zelle eine Farbe hinzuzufügen. – sady

+0

Ich weiß, ich dachte nur, dass das SelectionChange-Ereignis irgendwie blockiert wurde. – Vityata

Verwandte Themen