簡體   English   中英

需要審核VBA代碼

[英]Need for review the VBA code

我嘗試根據另一個單元格值鎖定一個單元格。 我使用了某些人提供的代碼,並且效果很好。 我也有其他一些帶有活動工作表更改的代碼,VBA發出錯誤。 隨着以下代碼的正常運行,但是當條件改變時,我希望單元格恢復正常並被解鎖,但仍處於鎖定狀態。

代碼是:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$7" Then
ActiveSheet.Unprotect ("mn")
If Target.Value = 10.4 Then Rows("21:26").EntireRow.Hidden = True
If Target.Value = 10.4 Then Rows("16").EntireRow.Hidden = True
If Target.Value <> 10.4 Then Rows("21:26").EntireRow.Hidden = False
If Target.Value <> 10.4 Then Rows("16").EntireRow.Hidden = False
End If
ActiveSheet.Protect ("mn")
End Sub

Private Sub Worksheet_Activate()
ActiveSheet.Unprotect ("mn")
If [E14] = "N/A" Then
[G14].Locked = True
'Remove locked property if E14's value is anything else or is deleted.
Else
[G14].Locked = False
'Optional, reprotect sheet
End If

If [E28] = "N/A" Then
[g28].Locked = True
'Remove locked property if E28's value is anything else or is deleted.
Else
[g28].Locked = False
'Optional, reprotect sheet
End If

If [E38] = "N/A" Then
[g38].Locked = True
'Remove locked property if E38's value is anything else or is deleted.
Else
[g38].Locked = False
'Optional, reprotect sheet
End If
ActiveSheet.Protect ("mn")
End Sub

感謝您的時間。

您的“ N / A”是否由公式給出? 因為如果要用的話

isError([F14])

只是一個字而不是

If [E14] = "N/A" Then
    [G14].Locked = True
    'Remove locked property if E14's value is anything else or is deleted.
Else
    [G14].Locked = False
    'Optional, reprotect sheet
End If

您可以使用

[G14].Locked = ([E14] = "N/A")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM