![我想用特定的数字替换一个字符,我应该输入什么公式来实现?](https://linux22.com/image/1628435/%E6%88%91%E6%83%B3%E7%94%A8%E7%89%B9%E5%AE%9A%E7%9A%84%E6%95%B0%E5%AD%97%E6%9B%BF%E6%8D%A2%E4%B8%80%E4%B8%AA%E5%AD%97%E7%AC%A6%EF%BC%8C%E6%88%91%E5%BA%94%E8%AF%A5%E8%BE%93%E5%85%A5%E4%BB%80%E4%B9%88%E5%85%AC%E5%BC%8F%E6%9D%A5%E5%AE%9E%E7%8E%B0%EF%BC%9F.png)
例如,如果我输入字母“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 )。