怎么样只把EXCEL中的英文字母删除,而其他文字不删除?如果用VBA,什么字符代表英文呀??
发布网友
发布时间:2022-05-07 00:56
我来回答
共5个回答
热心网友
时间:2023-10-09 22:56
比如你说的Aa123字符串在A1单元格,代码如下:
Sub temp()
Dim myStr As String
For i = 1 To Len([a1])
If Asc(Mid([a1], i, 1)) >= 48 And Asc(Mid([a1], i, 1)) <= 57 Then
myStr = myStr & Mid([a1], i, 1)
End If
Next
[a1] = myStr
End Sub
代码说明:
用mid将字符串按单字符取出来,并用asc判断是不是数字,如果是即加进新字符串,最终得到的新字符串即是你想要的内容。
热心网友
时间:2023-10-09 22:57
Sub aa()
Dim irng As Range: set irng = Selection
'Selection表示选中的区域,即:先选中区域,再切换到代码页运行本程序
'可换成其他区域,如:irng = range("A1:D5") ,表示对A1:D5区域做动作
Dim x As Integer
Dim MyStr As String
Dim s As String
Dim t As String
For Each c In irng
s = c.Value
MyStr = ""
If s <> "" Then
For x = 1 To Len(s)
t = Mid(s, x, 1)
If t Like "[a-zA-Z]" = False Then MyStr = MyStr & t
Next x
c.Value = MyStr
End If
Next
End Sub
热心网友
时间:2023-10-09 22:57
楼上的方法只能将字符中的数字提出来,如果有其他字符都将删除.但楼主的说明中要求将英文字母删除,其他文字不删除.应该用Like运算符来判断字符是否是字母(不区分大小).代码如下:
Sub aa()
Dim x As Integer, MyStr As String
For x = 1 To Len([a1])
If Mid([a1], x, 1) Like "[a-zA-Z]" = False Then
MyStr = MyStr & Mid([a1], x, 1)
End If
Next x
[a1] = MyStr
End Sub
热心网友
时间:2023-10-09 22:58
用替换的方法:“^$(注意不是字母s,而是#后面的那个键)”替换为空格或者直接不写。
这样是只删除英文,保留其他文字的。
热心网友
时间:2023-10-09 22:59
不是什么符号代表英文,是要根据值来判断是不是数字,不是的就去掉。如果是有规律的,比如都是前两位是英文,或后三位是数字的好办。无规律的要麻烦点。