обновление Excel (вставка, удаление) в sheet2, если пользователь изменяет значение данной ячейки в sheet1 - PullRequest
0 голосов
/ 14 апреля 2020

мне нужна ваша помощь
следующий код работает нормально

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

 Dim KeyCells As Range
 Set KeyCells = Range("H:H")
If (Target.Value <> "") And (IsNumeric(Target.Value)) And (Target.Value > 0) And ((Target.HasFormula) = False) Then

If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
Dim X As Integer
Sheets("sheet2").Activate
For X = Sheets("sheet2").Range("G100").End(xlUp).Row To Sheets("sheet2").Range("G100").End(xlUp).Row + Target.Value - 1
Sheets("sheet2").Range("B" & X + 1).Value = Sheets("sheet1").Range("B" & Target.Row)
Sheets("sheet2").Range("C" & X + 1).Value = Sheets("sheet1").Range("C" & Target.Row)
Sheets("sheet2").Range("D" & X + 1).Value = Sheets("sheet1").Range("D" & Target.Row)
Sheets("sheet2").Range("E" & X + 1).Value = Sheets("sheet1").Range("E" & Target.Row)

Sheets("sheet2").Range("G" & X + 1).Value = "Enter serial"
Next X
'MsgBox Target.Address
MsgBox "done" & X
Else
End If
Else
MsgBox "Wrong Value! You Must Enter Number greater Than 0 "
End If
End Sub

все, что мне нужно, это в случае, если пользователь ввел значение ex: 2 в ячейку H6 в пределах диапазона ("H: H") в sheet1 тогда будет 2 строки, обработанных в sheet2. Теперь, если пользователь изменит значение ячейки H6 с 2 на 3, я хочу код, который обновит ранее затронутые 2 строки в sheet2, добавив новую одну строку, и если пользователь изменит значение H6 с 2 на 1, тогда в sheet2 необходимо удалить один ряд чтобы четко понять, что мне нужно, пожалуйста, выполните приведенный выше код, затем внесите изменения в Range ("H"). заранее спасибо. Более подробное объяснение: извините за поздний comnand. Спасибо всем members.my sheet1 является основной записью для некоторых элементов. Некоторые из этих элементов имеют серийный номер, а некоторые не имеют .Range ("H: H") - количество элементов с серийным номером. поэтому, если есть 5 элементов с серийным номером #, я записываю его на sheet2, начиная с первой пустой ячейки. Sheets ("sheet2"). Range ("G100"). End (xlUp) .Row. чтобы можно было ввести серийный # для этих элементов .для других элементов у него есть другой диапазон («i: i»), но я не беспокоюсь об этом. Теперь, если пользователь введет значение 2 в качестве количества, например, в ячейку H6, то будет обработано 2 строки в sheet2, и это нормально. но предположим, что пользователю необходимо изменить значение ячейки H6 с 2 на 3., поэтому в этом случае к листу 2 должна быть добавлена ​​1 строка. но если пользователь изменит значение ячейки H6 с 2 на 1. то из листа 2 должна быть удалена 1 строка. Можем ли мы изменить способ кода выше, чтобы выполнить эти требования?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...