我在做什么错误重置单元格值excel

就我而言,对于excel编程来说,这是一个非常新的东西,我弄清楚了一个macros,它可以帮助我validation单元格,如果另一个单元格中的值不允许,

Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Unprotect Range("W" & (ActiveCell.Row)).Locked = False Range("Y" & (ActiveCell.Row)).Locked = False Range("Z" & (ActiveCell.Row)).Locked = False Range("C" & (ActiveCell.Row)).Locked = False If Range("U" & (ActiveCell.Row)).Value = "Controlled Good" Then Range("W" & (ActiveCell.Row)).Locked = True End If 

但是我想把没有想要的单元格的值重置为空,所以我试了一下

  If Range("U" & (ActiveCell.Row)).Value = "Controlled Good" Then Range("W" & (ActiveCell.Row)).value="" Range("W" & (ActiveCell.Row)).Locked = True 

但是我收到一个错误,我做错了什么?

谢谢

尝试这个

 Private Sub Worksheet_Change(ByVal Target As Range) With ActiveSheet .Unprotect .Range("W" & (ActiveCell.Row)).Locked = False .Range("Y" & (ActiveCell.Row)).Locked = False .Range("Z" & (ActiveCell.Row)).Locked = False .Range("C" & (ActiveCell.Row)).Locked = False If .Range("U" & (ActiveCell.Row)).Value = "Controlled Good" Then .Range("W" & (ActiveCell.Row)).Value = "" .Range("W" & (ActiveCell.Row)).Locked = True End IF .Protect End With End If 

在这里,我们去:)这也工作

  If Range("U" & (Target.Row)).Value = "Controlled Good" Then Range("W" & (Target.Row)).Locked = True Application.EnableEvents = False Range("W" & (Target.Row)).Value = "" Application.EnableEvents = True End If 

感谢MS Excel崩溃时运行vba代码