我想用特定的数字替换一个字符,我应该输入什么公式来实现?

我想用特定的数字替换一个字符,我应该输入什么公式来实现?

例如,如果我输入字母“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 )。

相关内容