A VBA kód nem működik

A következő VBA kódom van:

Probléma

 Privát Sub Worksheet_Change (ByVal Target As Range) Dim cRow mint Integer Ha metszi (Target, Range ("R11: R20")) Semmi, akkor kilép az Sub Ha Target.Value = "F", majd ActiveSheet.Unprotect cRow = Target.Row Range (Cellák (cRow, "T"), Cellák (cRow, "U")) Zárt = True ActiveSheet.Protect End Ha a Target.Value = "T" vagy Target.Value = "" Akkor ActiveSheet.Unprotect cRow = Cél .Row Range (Cellák (cRow, "T"), Cellák (cRow, "U")) Zárt = False ActiveSheet.Protect End Ha vége 

Amire szükségem van, hogy a ClearContents-et (cRow target.Row) a nagybetűkben először lezárjuk.

  • A túlóra kiszámításához Excel lap van, minden hónapban több sor szerepel, és a lap védve van, de lehetővé teszi a felhasználó számára, hogy adatokat adjon meg egy meghatározott tartományba (P11: P20, R11: X20) (Engedélyezze a felhasználó számára a tartomány szerkesztését).
  • Továbbá, a tartomány (R11: R20) sorok a négy érték (1, 2, 3, 4) csepplista menüjével.
  • Az én esetem: Például, ha a felhasználó csak 3-as vagy 4-es értéket választott CSAK cellában (R15), meg kell blokkolnom vagy meg kell védenie a tartományt (T15: U15), és ha ezután az azonos lapon 3 vagy 4 érték van az R19 cellában. a tartomány (T19: U19) és így tovább.
  • Ezért szükségem van egy bizonyos cellában kiválasztott értékre, hogy ugyanazon a soron belül néhány tartományt megvédjünk. Kérjük, vegye figyelembe, hogy a felhasználó az egyik lapon kiválaszthat egy választást vagy több választást.

Megoldás

Az aktuális lekérdezéshez azt feltételeztem, hogy törölni szeretné a cél sor T és U oszlopának tartalmát.

 Privát Sub Worksheet_Change (ByVal Target As Range) Dim cRow mint Integer Ha metszi (Target, Range ("R11: R20")) Nincs semmi, majd kilép az Sub Ha Target.Value = "F", majd ActiveSheet.Unprotect cRow = Target.Row with Tartomány (cellák (cRow, "T"), cellák (cRow, "U")) .ClearContents .Locked = True End ActiveSheet.Protect End Ha Ha Target.Value = "T" vagy Target.Value = "" Akkor ActiveSheet .Unprotect cRow = Target.Row Range (cellák (cRow, "T"), cellák (cRow, "U")) Locked = False ActiveSheet.Protect End Ha vége 

Köszönjük TrowaD- nak ezt a tippet.

Előző Cikk Következő Cikk

Top Tippek