Я новичок в Excel и VBA. Я делаю список проектов, у меня есть два столбца для состояния, Status
и Status in Words
. В первом мне нужно ввести статус в виде чисел, например. 50% или 80%, а во втором Мне нужно ввести статус проекта словами: Open, Closed, In Progress и т. Д. Моя проблема в том, что когда я пишу 50% в первом столбце, статус в другом столбце должен автоматически меняться до In Progress
и наоборот, если я ввожу Closed
во второй столбец, то статус в первом столбце должен измениться на 100%
. Может ли кто-нибудь сказать мне, как это сделать в Excel vba.Изменение значений одной ячейки на основе другой в Excel
ответ
Это может сработать. Измените 1 на свой нижний номер столбца и 2 на свой больший номер столбца. Я не мог понять, как сказать Excel, чтобы проверить, соответствует ли она «100%» или «50%», поэтому мне пришлось использовать 1 и .5. Если кто знает, не стесняйтесь редактировать или прокомментировать!
'This is a global variable, prevents endless loops in worksheet change.
Dim running As Boolean
'When any change is made on the worksheet, sends target as the changed cell
Private Sub Worksheet_Change(ByVal Target As Range)
'Checks to see if a worksheet change is already running, if it is, then it quits
If running = True Then Exit Sub
'We are running code now, so prevent endless loops
running = True
Dim YourFirstColumn, YourOtherColumn As Integer
'Set to your values
YourFirstColumn = 1
YourOtherColumn = 2
'If this is a column you want to change
If Target.Column = YourFirstColumn Then
'Change values
If Target.Value = "In Progress" Then
Target.Offset(0, Abs(YourFirstColumn - YourOtherColumn)).Value = "50%"
ElseIf Target.Value = "Closed" Then
Target.Offset(0, Abs(YourFirstColumn - YourOtherColumn)).Value = "100%"
End If
'If this is the other column you want to change
ElseIf Target.Column = YourOtherColumn Then
'Change values
If Target.Value = 0.5 Then
Target.Offset(0, -Abs(YourFirstColumn - YourOtherColumn)).Value = "In Progress"
ElseIf Target.Value = 1 Then
Target.Offset(0, -Abs(YourFirstColumn - YourOtherColumn)).Value = "Closed"
End If
End If
running = false
End Sub
Спасибо за код, я думаю, это было то, что я искал. Один из вопросов, который у меня есть, должен ли я поместить это как новый модуль, а затем попытаться изменить его и запустить? – Nikky
А, извините, нет. Это должно войти в код рабочего листа, так как это характерно для рабочего листа, но в остальном - да. Однако я бы поставил точку останова на первой строке и прохожу через нее по строкам с помощью «F8», чтобы быть уверенным, что это не повредит что-либо еще на вашем листе. Вы даже можете сохранить его перед запуском. – seadoggie01
Единственный недостаток с изменением значений vba-кода в ячейке заключается в том, что вы больше не сможете отменить отмену. – Nybbe
- 1. Изменение цветов ячеек Excel на основе значений
- 2. Форматировать ячейки Excel на основе их значений
- 3. Автозаполнение данных ячейки на основе другой ячейки в Excel
- 4. Изменение цвета строки на основе ячейки в другой строке
- 5. Excel - программные ячейки для изменения цвета на основе другой ячейки
- 6. Изменение значения другой ячейки
- 7. формат Excel ячейки на основе смежной ячейки
- 8. Excel VBA - изменение видимости кнопок на основе обновления соседней ячейки
- 9. формула Excel добавить ячейки в одной строке на основе критериев
- 10. Возвращаемое значение из одной ячейки на основе другой
- 11. Excel VBA Изменение цвета ячейки на основе значения
- 12. Изменение цвета диапазона ячеек на основе значения одной ячейки
- 13. Попытка скрыть строки в Excel на основе определенных значений ячейки
- 14. Формула в Excel для добавления значений на основе объединенной ячейки
- 15. Вставить текст в ячейку Excel на основе содержимого другой ячейки
- 16. местоположения ячейки excel на основе значения в другой ячейке
- 17. Изменение значений столбцов на основе другого столбца в одной таблице
- 18. Excel устанавливает значение одной ячейки на основе диапазона дат
- 19. Динамическое изменение значения ячейки Excel на основе имени активного листа
- 20. Excel: Как сделать условное форматирование на основе двух значений ячейки?
- 21. excel возвращает значение ячейки на основе двух других значений.
- 22. Формула Excel для значения ячейки на основе значений двух ячеек
- 23. VBA: изменение значения ячейки на основе приблизительных значений других ячеек
- 24. Как слить ячейки на основе аналогичных значений - Excel 2010
- 25. Исключительное содержимое Excel сбрасывается на основе другой ячейки, очищаемой
- 26. Excel - разблокировать ячейку на основе ответа другой ячейки
- 27. Excel формула стоимости на основе другой ячейки Значения
- 28. Изменение изображения ячейки из другой ячейки textclick
- 29. Excel копирование значения одной ячейки в другую на основе значения третьей ячейки
- 30. Копирование значений Excel на основе другого значения
Вы не можете использовать изменения «наоборот», используя только 2 ячейки, без VBA. Если вы вручную введите значение в ячейке, оно переопределит любую формулу, используемую для проверки другой ячейки. Ваш вариант, отличный от VBA, должен использовать 4 столбца, из которых 2 являются «входными», а 2 из них «вывод». Таким образом, вы можете вводить данные в первые 2, а второй 2 будет получать правильное значение. –
Я бы с удовольствием использовал VBA. Не могли бы вы посоветовать мне, как я могу продолжить работу с VBA? @ Grade'Eh'Bacon – Nikky
Не используйте VBA, если вы не можете прочитать код, который вы используете. Если вы можете прочитать код VBA, сначала попробуйте это самостоятельно, потому что этот сайт предназначен для конкретных вопросов и ответов, и это не служба написания кода. Если у вас есть вопрос о том, как заставить ваш код работать, мы будем рады помочь. Как бы то ни было, это слишком широкий вопрос для ответа. –