例如,如果我输入字母“W”,我希望单元格自动替换为数字 4,000;如果我输入字母“B”,我希望单元格自动替换为数字 3,000。如果我随后更改字母,我希望单元格自动更改为新数字。
答案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
怎么运行的:
- 按下Alt+F11。
- 或者R右键单击 Sheet TAB,然后从弹出菜单中点击五查看代码。
您将获得 VBA 编辑器的窗口。
C奥皮&磷粘贴此代码。
按Ctrl+s 保存。
现在按Alt+Q 返回工作表。
现在,只要您在 A 列中输入 W、X 或 Z,此代码就会将其替换为指定的数字。
注意:
- 您可以添加更多条件。
- 字母和相应数字均可以编辑。
- 您可以使用代码行调整列,
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 )。