A1单元格里有中文也有英文,B1,C1也如此,请问:怎样一次全部选择A1,B1,C1单元格里面的英文?谢谢!!!
我很感谢2815161给我的帮助,但他的方法是要将单元格内容分解。在同一个单元格里有中文也有英文(单元格的数量很多),我想:能不能不用分解单元格内容,只想一次性地全部选定英文字母。请帮帮忙,谢谢!!
EXCEL2003一次选择全部英文字母
答案:2 悬赏:50 手机版
解决时间 2021-02-05 17:46
- 提问者网友:欲劫无渡
- 2021-02-05 00:42
最佳答案
- 五星知识达人网友:玩世
- 2021-02-05 01:34
看了不少人都浏览了,但是没人给答案啊?我想了一下还是有办法的,不过要分解开做,要是你只有几个单元格那就得不偿失,要是你要区分的单元格很多,哪就事半功倍。你不给分的啊?百度财富值有吗? 擦,五分也算分啊。。
Sub cc()
Dim i&, r&, arr
r = [a65536].End(xlUp).Row
arr = Range("a1:c" & r)
With CreateObject("VBSCRIPT.REGEXP")
.Global = True
.Pattern = "[\u4e00-\u9fa5,?]"
For i = 1 To UBound(arr)
arr(i, 2) = .Replace(arr(i, 1), "")
arr(i, 3) = Replace(arr(i, 1), arr(i, 2), "")
Next
End With
Range("a1:c" & r) = arr
End Sub
这个是代码,应该能满足你的要求了 ,这个最好用,但是这个也不好理解,还有个说法就是假如你原始单元格是A1,那么在
B1输入=IF(LENB(LEFt(A1))=1,RIGHt(A1,LENB(A1)-LEN(A1)),LEFt(A1,LENB(A1)-LEN(A1)))
C1输入=IF(LENB(LEFt(A1))=1,LEFt(A1,LEN(A1)*2-LENB(A1)),RIGHt(A1,LEN(A1)*2-LENB(A1))) 往下来就行了,我建议你还是先理解了吧 不然以后还是不会、
老大,表发给我看看,我邮箱174385161@qq.com,哎!太难了!
Sub cc()
Dim i&, r&, arr
r = [a65536].End(xlUp).Row
arr = Range("a1:c" & r)
With CreateObject("VBSCRIPT.REGEXP")
.Global = True
.Pattern = "[\u4e00-\u9fa5,?]"
For i = 1 To UBound(arr)
arr(i, 2) = .Replace(arr(i, 1), "")
arr(i, 3) = Replace(arr(i, 1), arr(i, 2), "")
Next
End With
Range("a1:c" & r) = arr
End Sub
这个是代码,应该能满足你的要求了 ,这个最好用,但是这个也不好理解,还有个说法就是假如你原始单元格是A1,那么在
B1输入=IF(LENB(LEFt(A1))=1,RIGHt(A1,LENB(A1)-LEN(A1)),LEFt(A1,LENB(A1)-LEN(A1)))
C1输入=IF(LENB(LEFt(A1))=1,LEFt(A1,LEN(A1)*2-LENB(A1)),RIGHt(A1,LEN(A1)*2-LENB(A1))) 往下来就行了,我建议你还是先理解了吧 不然以后还是不会、
老大,表发给我看看,我邮箱174385161@qq.com,哎!太难了!
全部回答
- 1楼网友:千杯敬自由
- 2021-02-05 02:30
选中数据区域,执行宏 getletter 选出的数据放在 sheet2 的对应位置。
sub getletter()
for each rg in selection
sheet2.cells(rg.row, rg.column) = getone(rg.value)
next
end sub
function getone(v)
getone = ""
for i = 1 to len(v)
c = mid(v, i, 1)
s = asc(c)
if (s > 64 and s < 91) or (s > 96 and s < 123) then
getone = getone & c
end if
next
end function
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯