VBA-kod fungerar inte

Jag har följande VBA-kod:

Problem

 Private Sub Worksheet_Change (ByVal Target As Range) Dim cRow As Integer Om Intersect (Target, Range ("R11: R20")) Ingenting Än så Avsluta Sub Om Target.Value = "F" Då ActiveSheet.Unprotect cRow = Target.Row Range (Celler (cRow, "T"), celler (cRow, "U")) Låst = True ActiveSheet.Protect End If If Target.Value = "T" eller Target.Value = "" Då ActiveSheet.Unprotect cRow = Target .Row Range (celler (cRow, "T"), celler (cRow, "U")) Låst = Falskt ActiveSheet.Protect-slut om slutdel 

Vad jag behöver är att ClearContents för (cRow target.Row) i huvudfallet först innan det är låst.3

  • Jag har Excel-ark för att beräkna övertid, innehåller flera rader för varje månad och arket är skyddat men tillåter användaren att mata in data till ett visst område (P11: P20, R11: X20) (Tillåt användaren att redigera intervallet).
  • Räckvidden (R11: R20) är också rader med drop list-menyn med 4 värden (1, 2, 3, 4).
  • Mitt fall: Om användaren bara valde värdet 3 eller 4 ENDAST i cellen (R15), måste jag blockera eller skydda intervallet (T15: U15) och om det med samma ark valdes 3 eller 4 värde i cell R19 för att skydda intervallet (T19: U19) och så vidare.
  • Därför behöver jag om ett värde valts i en specifik cell för att skydda vissa intervall inom samma rad. Observera att användaren kan välja ett val eller flera val i samma ark.

Lösning

För din aktuella fråga antog jag att du vill rensa innehållet i kolumn T och U i mållinjen.

 Private Sub Worksheet_Change (ByVal Target As Range) Dim cRow As Integer Om Intersect (Target, Range ("R11: R20")) Ingenting Än så Avsluta Sub Om Target.Value = "F" Då ActiveSheet.Unprotect cRow = Target.Row With Räckvidd (celler (cRow, "T"), celler (cRow, "U")). Klara innehåll. Låsta = Sann ände med ActiveSheet.Protect End If If Target.Value = "T" eller Target.Value = "" Då ActiveSheet .Unskydda cRow = Target.Row Range (celler (cRow, "T"), celler (cRow, "U")) Låst = Falskt ActiveSheet.Protect End If End Sub 

Tack vare TrowaD för detta tips.

Tidigare Artikel Nästa Artikel

Bästa Tipsen