Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2453|回复: 4

请求各位完善首字母输入问题

[复制链接]
发表于 2017-1-14 13:26 | 显示全部楼层 |阅读模式
本帖最后由 zhyduser 于 2017-1-18 13:25 编辑

工作薄中有4个工作表,其中sheet1为“废钢客户数据库"。现sheet3可以实现首字母输入及将数据库相应内容填入到对应单元格中;sheet2需要首字母输入,将单位名称填入到B列,无需其他数据,请各位帮写代码,谢谢!要求在 表中使用 表同样的功能,输入关键字首字母由“废钢客户数据库"B列筛选出含关键字的单位名称列表。
1.png 2.png

首字母模糊输入.zip (151.42 KB, 下载次数: 12)
发表于 2017-1-16 09:43 | 显示全部楼层
回复

使用道具 举报

发表于 2017-1-16 10:30 | 显示全部楼层
我不知道你想在哪输入,输入几个。给你代码,自己改下
Function getpychar(char)
tmp = 65536 + Asc(char)
If (tmp >= 45217 And tmp <= 45252) Then
getpychar = "A"
ElseIf (tmp >= 45253 And tmp <= 45760) Then
getpychar = "B"
ElseIf (tmp >= 45761 And tmp <= 46317) Then
getpychar = "C"
ElseIf (tmp >= 46318 And tmp <= 46825) Then
getpychar = "D"
ElseIf (tmp >= 46826 And tmp <= 47009) Then
getpychar = "E"
ElseIf (tmp >= 47010 And tmp <= 47296) Then
getpychar = "F"
ElseIf (tmp >= 47297 And tmp <= 47613) Then
getpychar = "G"
ElseIf (tmp >= 47614 And tmp <= 48118) Then
getpychar = "H"
ElseIf (tmp >= 48119 And tmp <= 49061) Then
getpychar = "J"
ElseIf (tmp >= 49062 And tmp <= 49323) Then
getpychar = "K"
ElseIf (tmp >= 49324 And tmp <= 49895) Then
getpychar = "L"
ElseIf (tmp >= 49896 And tmp <= 50370) Then
getpychar = "M"
ElseIf (tmp >= 50371 And tmp <= 50613) Then
getpychar = "N"
ElseIf (tmp >= 50614 And tmp <= 50621) Then
getpychar = "O"
ElseIf (tmp >= 50622 And tmp <= 50905) Then
getpychar = "P"
ElseIf (tmp >= 50906 And tmp <= 51386) Then
getpychar = "Q"
ElseIf (tmp >= 51387 And tmp <= 51445) Then
getpychar = "R"
ElseIf (tmp >= 51446 And tmp <= 52217) Then
getpychar = "S"
ElseIf (tmp >= 52218 And tmp <= 52697) Then
getpychar = "T"
ElseIf (tmp >= 52698 And tmp <= 52979) Then
getpychar = "W"
ElseIf (tmp >= 52980 And tmp <= 53640) Then
getpychar = "X"
ElseIf (tmp >= 53689 And tmp <= 54480) Then
getpychar = "Y"
ElseIf (tmp >= 54481 And tmp <= 62289) Then
getpychar = "Z"
Else '如果不是中文,则不处理
getpychar = char
End If
End Function
以上是VBA
以下在表格输入公式
=getpy(R6)
回复

使用道具 举报

发表于 2017-1-16 10:32 | 显示全部楼层
Function 提取数字(s_string As String) As Integer
'--------------
'例如:GGG3.6和,提取“3.6” 点的char=46 Asc("A")
'--------------------

      For i = 1 To Len(s_string)
          If IsNumeric(Mid(s_string, i, 1)) Or Asc(Mid(s_string, i, 1)) = 46 Then
          提取数字 = 提取数字 & Mid(s_string, i, 1)
         
         End If
      Next i
End Function
这个提取数字 ,改一下也可提字母
回复

使用道具 举报

 楼主| 发表于 2017-1-17 09:59 | 显示全部楼层
要求在 QQ截图20170117095358.png 表中使用 2.png 表同样的功能,输入关键字首字母由“废钢客户数据库"B列筛选出含关键字的单位名称列表。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 22:36 , Processed in 0.379740 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表