У меня есть список из 30 проектов, отображаемых в строках, мне нужно дать пользователю возможность изменить приоритет проектов в форме VBA.
Форма в порядке, пользователь может искать проектон хочет (нажав на поиск проекта), старый приоритет заполняется автоматически, и ему предлагается ввести новый приоритет:
![enter image description here](https://i.stack.imgur.com/FRT5M.png)
НажатиемОК, новый приоритет для этого проекта должен заменить старый приоритет для этого проекта, и он должен переупорядочить все в столбце приоритетов.
Код, который у меня есть, почти работает, но оставляет целое, в примере нижеЯ изменил проект с приоритетом 3 на приоритет 10, он изменил весь столбец, но исчез с приоритетом проекта 3:
![enter image description here](https://i.stack.imgur.com/NeOhC.png)
Этокод, который у меня есть:
(это действительно грязно, и я не могу придумать, как заставить это работать)
' After clicking on look for project , where cell focus in on the project he wants to change priority
Private Sub CommandButton1_Click()
Dim old_priority As String
Dim CELL As Range
ActiveCell.Offset(0, -1).Select
ActiveCell.Value = new_priority.Text
For Each CELL In Range("b8:b36")
If CELL.Value >= new_priority.Text + 1 Then
CELL.Value = CELL.Value + 1
Else
End If
If CELL.Value = new_priority.Text Then
CELL.Value = CELL.Value + 1
Else
End If
Next CELL
ThisWorkbook.Sheets("sheet5").Range("c27").Value = new_priority.Text
Cells.Find(What:=ThisWorkbook.Sheets("sheet5").Range("b27").Value, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Prioridade.Text = ActiveCell.Offset(0, -1).Value
ActiveCell.Offset(0, -1).Select
ActiveCell.Value = new_priority.Text
Unload Me
End sub
Я уверен, что есть более простой способ прохождения цикла черезячейки и переупорядочить список.