Я в тупике (много не нужно). У меня есть два фрагмента кода, которые, похоже, не работают вместе. Я хотел бы их или найти альтернативу. Первый — это код командной кнопки, который очищает содержимое и меняет форматирование. Это работало отлично, пока я не добавил, если значение меняет код. Код изменения значения относится к ячейкам в диапазоне, где форматирование меняется по сравнению с первым кодом. Я предполагаю, что это проблема. Коды используют именованные диапазоны по большей части. Я попытался использовать адреса ячеек, определить диапазон в коде, защитить/снять защиту и добавить имя листа в диапазон.
Этот код отлично работает без кода изменения значения if.
Private Sub CommandButton2_Click()
Sheets("PN Generation").unprotect Password:="1234"
Range("SELECT").Value = 2
Range("PNSELECT").ClearContents
Range("SMC").ClearContents
Range("ALL").Interior.ColorIndex = 35
Range("ALL").Font.ColorIndex = 49
Range("SMC").Interior.ColorIndex = 6
Range("SMCD").Font.ColorIndex = 15
Range("SMCD").Interior.ColorIndex = 15
Call protect
End Sub
При использовании приведенного ниже кода приведенный выше код возвращает ошибку 1004, определяемую приложением/объектом, начиная со строки 5 — Range(ALL).Interior.ColorIndex=35.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D3")) Is Nothing Then
If Range("PNI") = "G" Or Range("PNI") = "U" Or Range("PNI") = "L" Or Range("PNI") = "T" Then
Sheets("Reverse Build").Range("MV").Copy
Sheets("PN Generation").Range("PFLMV").PasteSpecial xlPasteValues
End If
If Range("PNI") = "A" Or Range("PNI") = "B" Or Range("PNI") = "C" Or Range("PNI") = "V" Or Range("PNI") = "AR" Then
Range("LV").Copy
Range("PF").PasteSpecial xlPasteValues
End If
If Range("PNI") = "S" Or Range("PNI") = "P" Then
Range("SIN").Copy
Range("PF").PasteSpecial xlPasteValues
End If
If Range("PNI") = "F" Then
Range("BARE").Copy
Range("PF").PasteSpecial xlPasteValues
End If
If Range("PNI") = "R" Then
Range("LVU").Copy
Range("PF").PasteSpecial xlPasteValues
End If
End Sub
Я хотел бы понять, почему я получаю сообщение об ошибке и как исправить, чтобы предотвратить ошибку.
Select Case
вместо группыIf
? - person Vincent G   schedule 08.12.2020