Excel精英培训网

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

[已解决]excel vba 提取字符串

[复制链接]
发表于 2015-7-11 14:36 | 显示全部楼层 |阅读模式
A列,输入的是学生的座号和成绩,已设成文本格式,
A               B            c
0110
1015
2080.5
现在B列要从A中提取出前面两位,作为座号,c列要从A中提取第三位开始到最后,作为成绩
我写的代码是
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i!
i = Range("a1").Value
Range("b1") = Left(i, 2)
Range("c1") = Mid(i, 3, 5)
End Sub
这个代码为什么当A为0110时,B提取的是11,C提取的是0而不是1和10
最佳答案
2015-7-11 15:46
学习了
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-7-11 15:00 | 显示全部楼层
本帖最后由 qh8600 于 2015-7-11 15:01 编辑

dim i as string
变量 i 要定义成字符串型
b1跟c1单元格格式设置为文本

评分

参与人数 1 +1 收起 理由
nsdyq + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2015-7-11 15:46 | 显示全部楼层    本楼为最佳答案   
回复

使用道具 举报

发表于 2015-7-11 18:28 | 显示全部楼层

楼主你可能弄错了
不过,我还是自己写个,你可以参考一下
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        Target.Offset(0, 1) = Left(Target.Text, 2)
        Target.Offset(0, 2) = Mid(Target.Text, 3, 99)
    End If
End Sub
工作表事件
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 01:35 , Processed in 0.299905 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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