Vba 在特定条件下保持电池不变
我正在寻找一种方法,每次另一个单元格处于活动状态时,都在单元格中保留一个公式Vba 在特定条件下保持电池不变,vba,excel,cell,Vba,Excel,Cell,我正在寻找一种方法,每次另一个单元格处于活动状态时,都在单元格中保留一个公式 Private Sub Worksheet_Change(ByVal Target As Range) If ActiveSheet.Range("AL2").Value = 1 Then ActiveSheet.Range("AK14").Value = ActiveSheet.Range("AL8").Value Else End If End Sub 所以,
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.Range("AL2").Value = 1 Then
ActiveSheet.Range("AK14").Value = ActiveSheet.Range("AL8").Value
Else
End If
End Sub
所以,如果单元格AL2等于1(我想要的活动单元格),我希望单元格AK14中有一个特定的值。
若单元格AL2不等于1,我只想保持AK14中的值不变(例如,有人可以覆盖它)
此时Excel似乎丢失了第二部分:如果AL2=0,我得到一个错误
如果我需要两个条件,我是否需要另一个条件
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Range("AL2").Value = 1 Then Range("F11").Value = Range("AK7").Value
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Range("AL2").Value = 2 Then Range("J11").Value = Range("AL7").Value
Application.EnableEvents = True
End Sub
所以我想要这两个宏..当您更改单元格中的值时,在工作表\u change
事件中,您应该禁用这些事件。否则,它将开始调用自己:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Range("AL2").Value = 1 Then Range("AK14").Value = Range("AL8").Value
Application.EnableEvents = True
End Sub
然后,作为下一步,在这里将错误捕捉器与.EnableEvents
一起使用是一个很好的实践:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Worksheet_Change_Error
Application.EnableEvents = False
If Range("AL2").Value = 1 Then Range("AK14").Value = Range("AL8").Value
Application.EnableEvents = True
On Error GoTo 0
Exit Sub
Worksheet_Change_Error:
Debug.Print "Error " & Err.Number & " (" & Err.Description & ") "
Application.EnableEvents = True
End Sub