Excel精英培训网

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

[VBA] 用VBA把姓名分拆成两列

[复制链接]
发表于 2016-9-20 18:53 | 显示全部楼层 |阅读模式

用VBA把姓名分拆成两列

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-9-20 19:24 | 显示全部楼层
1、看豆号,把名字和性别取出
2、看括号,取出性别
3、把女的写入数组并编号
4、把数组写入单元格
代码不超过10行。但这里可能没人写

评分

参与人数 1 +1 收起 理由
laoau138 + 1 还给你一分,哈哈

查看全部评分

回复

使用道具 举报

发表于 2016-9-20 19:26 | 显示全部楼层
  1. Private Sub CommandButton1_Click()
  2.     Dim arr, n%
  3.     arr = Split(Range("a1").Value, ",")
  4.     For n = 0 To UBound(arr)
  5.         If InStr(arr(n), "女") Then
  6.             With Range("b" & Cells.Rows.Count).End(xlUp)
  7.                 .Offset(1, 0).Value = .Row - 4
  8.                 .Offset(1, 1).Value = Split(arr(n), "(")(0)
  9.             End With
  10.         End If
  11.     Next n
  12. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
laoau138 + 3 来学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-9-20 19:33 | 显示全部楼层
pengyx 发表于 2016-9-20 19:24
1、看豆号,把名字和性别取出
2、看括号,取出性别
3、把女的写入数组并编号

既然没人写,为何还打五行字你是故意的



回复

使用道具 举报

 楼主| 发表于 2016-9-20 19:34 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-9-20 21:12 | 显示全部楼层
Sub 提取姓名()
Dim i%,str$, mat, reg
Set reg = CreateObject("vbscript.regexp")
str = Range("A1").Value
With reg
    .Global = True
    .Pattern = "([\u4e00-\u9fa5]+)\("
    Set mat = .Execute(str)
End With
For i = 0 To mat.Count - 1
    Cells(i + 6, 2) = i + 1
    Cells(i + 6, 3).Value = mat(i).SubMatches(0)
Next
End Sub
回复

使用道具 举报

 楼主| 发表于 2016-9-20 21:12 | 显示全部楼层

Sub 提取()
Dim i%, k%, arr, brr
arr = Split(Range("A1").Value, ",")
ReDim brr(1 To UBound(arr), 1 To 2)
For i = 0 To UBound(arr)
    If InStr(arr(i), "女") Then
        k = k + 1
        brr(k, 1) = k
        brr(k, 2) = Replace(arr(i), "(女)", "")
    End If
Next
Range("B6").Resize(k, 2) = brr
End Sub
回复

使用道具 举报

 楼主| 发表于 2017-1-9 19:06 | 显示全部楼层


VBA蓝底单元格输入数字全排列   然后再容错

http://www.excelpx.com/thread-427027-1-1.html


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 02:53 , Processed in 0.245987 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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