EXCEL 含特殊字符的单元格怎么提取指定内容

该VBA代码片段展示了如何从Excel工作表中的A列,处理包含特殊字符的文本,提取出工号(数字)和人员名称(汉字),并将它们分别存入B列和C列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设要把第一列,工号及人员名单,拆分出来,显示一列工号,显示一列人员名称
只写了部分特殊字符,有需要可增加
在这里插入图片描述

Sub 提取文字和数字()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim cellValue As String
    Dim numPart As String
    Dim hanPart As String
    Dim rowIndex As Long
    Dim char As String
    Dim isSpecial As Boolean
    
    ' 指定工作表
    Set ws = ThisWorkbook.Sheets("人员名单")
    
    ' 定义特殊字符和字母
    Dim specialChars As String
    specialChars = "-_~……& /:;()¥@“”。,、?!.【】{}#%^*~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
    
    ' 确定最后一行
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    
    ' 遍历A列,提取数字和汉字
    For i = 1 To lastRow
        cellValue = ws.Range("A" & i).Value
        numPart = ""
        hanPart = ""
        isSpecial = False
        
        ' 提取数字部分和汉字部分
        For j = 1 To Len(cellValue)
            char = Mid(cellValue, j, 1)
            If IsNumeric(char) Then
                numPart = numPart & char
            ElseIf AscW(char) >= -40869 And AscW(char) <= -10242 Then
                hanPart = hanPart & char
            ElseIf InStr(specialChars, char) = 0 Then
                hanPart = hanPart & char
            End If
        Next j
        
        ' 将数字部分放置在B列,汉字部分放置在C列
        ws.Range("B" & i).Value = Val(numPart)
        ws.Range("C" & i).Value = hanPart
    Next i
    
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值