Так, например, если я введу букву «W», я хочу, чтобы ячейка автоматически заменила ее на число 4000, а если я введу букву «B», я хочу, чтобы ячейка заменила ее на число 3000. Если я затем изменю букву, я хочу, чтобы ячейка автоматически заменила ее на новое число.
решение1
Вы можете попробовать этот код:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
If Target.Columns.Count = 1 Then
If Target.Value = "W" Then
Target.Value = 4000
ElseIf Target.Value = "X" Then
Target.Value = 5000
ElseIf Target.Value = "Y" Then
Target.Value = 6000
End If
Endif
End Sub
Как это работает:
- Либо нажмитеАlt+F11.
- Илирщелкните на вкладке «Лист», затем во всплывающем меню нажмитеВновый код.
Откроется окно редактора VBA.
Скопия &псохраните этот код.
НажиматьСtrl+s для сохранения.
Теперь нажмитеАlt+Q для возврата к листу.
Теперь, как только вы введете W, X или Z в столбец A, этот код заменит его на присвоенный номер.
Примечание.
- Вы можете добавить больше условий.
- Алфавиты и соответствующие цифры можно редактировать.
- Вы можете настроить столбец, используя строку кода.
If Target.Columns.Count = 1 Then
Здесь 1 представляет любой один столбец.
Также должно быть,
If Target.Columns.Count >= 1 And Target.Columns.Count <= 5 Then
Если вы хотите, чтобы работало только в столбце A, то лучше использовать этот код.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Me.Range("A:A")) Is Nothing Then
If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
If Target.Value = "W" Then
Target.Value = 4000
ElseIf Target.Value = "X" Then
Target.Value = 5000
ElseIf Target.Value = "Y" Then
Target.Value = 6000
End If
End If
End Sub
Примечание.
- Это
Me.Range("A:A"))
можно редактировать и следуетMe.Range("A:C"))
такжеMe.Range("A1:A100"))
. - Сохранить книгу какМВключить acro ( .xlsm ).