У меня есть список курсов в ячейке b и их соответствующих приоритетах в ячейке c от 1 до 49. Я хочу, чтобы пользователь менял любое значение столбца приоритета, т.е. «C ». то все остальные приоритеты должны быть соответствующим образом скорректированы. логику можно увидеть в прилагаемом листе. номера приоритетов должны динамически меняться, когда пользователь вводит значение. поэтому в примере один ссылочный столбец L в прилагаемом листе. , если пользователь изменит приоритет № 4 на 8, остальные останутся на один. Аналогично, теперь у нас есть новый список nos. поэтому, если какое-либо другое число изменится, оно должно соответствующим образом скорректировать, имея в виду новый список sheet snapshot attachedприсвоение приоритета на основе динамически меняющихся значений пользователя excel vba
Пробовал приведенный ниже код, но он всегда начинается со значения 1 снова. Таким образом, значения не корректируются на основе нового списка.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myVal As Variant
Dim iCount As Long
Dim cell As Range
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("C1:C49")
If Intersect(Target, Range("C1:C49")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
myVal = Target.Value
iCount = 1
For Each cell In myRange
If Intersect(Target, cell) Is Nothing Then
If iCount = myVal Then
iCount = iCount + 1
End If
cell.Value = iCount
iCount = iCount + 1
End If
Next cell
Application.EnableEvents = True
End Sub
Это похоже на [этот вопрос] (http: // stackover flow.com/questions/36433675/dynamically-changing-the-numbers-in-the-cell-based-on-the-the-user-input/36435078#36435078) – OldUgly
Да, несколько похоже на это, но разные .. число начинается с 1 снова .., но здесь логика отличается. Нет, что изменяет пользователь, цикл должен до тех пор, пока этот номер не сохранит другой, как есть. показан на прилагаемом скриншоте –