Студент Гэри ответил на этот вопрос раньше, и он отлично работал только для 1 ячейки на листе. Если бы я хотел отразить несколько ячеек, что я мог сделать? Я пробовал следующее, и это не работает. Я не получаю ошибки, но ничего не происходит. Я новичок в VBA Кстати.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim r1 As Range, r2 As Range
Set r1 = Range("C3:D3")
Set r2 = Sheets("Flight Planning").Range("K1:K2")
If Intersect(Target, r1) Is Nothing Then Exit Sub
Application.EnableEvents = False
    r2.Value = r1.Value
Application.EnableEvents = True

Dim r3 As Range, r4 As Range
Set r3 = Range("E22")
Set r4 = Sheets("Flight Planning").Range("B4")
If Intersect(Target, r3) Is Nothing Then Exit Sub
Application.EnableEvents = False
    r4.Value = r3.Value
Application.EnableEvents = True

Dim r5 As Range, r6 As Range
Set r5 = Range("E24")
Set r6 = Sheets("Flight Planning").Range("C4:D4")
If Intersect(Target, r5) Is Nothing Then Exit Sub
Application.EnableEvents = False
    r6.Value = r5.Value
Application.EnableEvents = True
End Sub

Спасибо

1 ответ1

0

Я дал вам пару комментариев, чтобы обдумать. Но я предлагаю вам это временное решение, чтобы вы могли увидеть возможные исправления. Пожалуйста, дайте мне знать, если это поможет вашей логике.

Если временное решение, которое я представляю ниже, решает, над чем вы работаете, отметьте поле как принятое решение, чтобы знать, что оно теперь закрыто.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim r1 As Range, r2 As Range
Set r1 = Range("C3:D3")
Set r2 = Sheets("Flight Planning").Range("K1:K2")
If Intersect(Target, r1) Is Nothing Then Exit Sub
  MsgBox "(1) Nothing" 'Let me know
Else
  Application.EnableEvents = False
    r2.Value = r1.Value
  Application.EnableEvents = True
EndIf

Dim r3 As Range, r4 As Range
Set r3 = Range("E22")
Set r4 = Sheets("Flight Planning").Range("B4")
If Intersect(Target, r3) Is Nothing Then Exit Sub
  MsgBox "(2) Nothing" 'Let me know
Else
  Application.EnableEvents = False
      r4.Value = r3.Value
  Application.EnableEvents = True
EndIf

Dim r5 As Range, r6 As Range
Set r5 = Range("E24")
Set r6 = Sheets("Flight Planning").Range("C4:D4")
If Intersect(Target, r5) Is Nothing Then Exit Sub
  MsgBox "(3) Nothing" 'Let me know or leave line blank
Else
  Application.EnableEvents = False
      r6.Value = r5.Value
  Application.EnableEvents = True
EndIf


End Sub

Одиночный «» делает комментарий, который комментирует оставшуюся часть строки справа и игнорируется. Он должен стать зеленым в среде Excel. Вы можете полностью закомментировать Msgbox с помощью одной цитаты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .