怎么用VBA读取第一列每个单元格的指定范围的字符

A列内容如下:原文本内容(A1)<字段一信息字段一="a"字段二="abc"字段三="ccc"字段四="ddd"><字段一信息字段一="a"字段二="abc"字段三="c... A列内容如下:原文本内容(A1) <字段一信息 字段一="a" 字段二="abc" 字段三="ccc" 字段四="ddd"> <字段一信息 字段一="a" 字段二="abc" 字段三="ccc" 字段四="ddd"> <字段一信息 字段一="a" 字段二="abc" 字段三="ccc" 字段四="ddd"> <字段一信息 字段一="a" 字段二="abc" 字段三="ccc" 字段四="ddd"> <字段一信息 字段一="a" 字段二="abc" 字段三="ccc" 字段四="ddd"> <字段一信息 字段一="a" 字段二="abc" 字段三="ccc" 字段四="ddd"> <字段一信息 字段一="a" 字段二="abc" 字段三="ccc" 字段四="ddd"> <字段一信息 字段一="a" 字段二="abc" 字段三="ccc" 字段四="ddd"> <字段一信息 字段一="a" 字段二="abc" 字段三="ccc" 字段四="ddd"> <字段一信息 字段一="a" 字段二="abc" 字段三="ccc" 字段四="ddd"> <字段一信息 字段一="a" 字段二="abc" 字段三="ccc" 字段四="ddd"> <字段一信息 字段一="a" 字段二="abc" 字段三="ccc" 字段四="ddd"> <字段一信息 字段一="a" 字段二="abc" 字段三="ccc" 字段四="ddd">B列字段一C列字段二D列字段三E列字段四通过 VBA设置一个按钮,点完按钮即可根据A列的内容自动填充BCDE列的内容 展开
 我来答
leon01314e7709
2013-10-27 · TA获得超过9320个赞
知道大有可为答主
回答量:6761
采纳率:61%
帮助的人:2458万
展开全部

EXCEL数据菜单中有个功能叫做分列,完全能实现你的要求,没有必要用VBA。

 

分列的时候你可以选指定字符或指定宽度

 

我的王是金闪闪4o
2013-10-27 · TA获得超过6698个赞
知道大有可为答主
回答量:7194
采纳率:42%
帮助的人:3280万
展开全部
Sub a()
Dim str1$, i%, j%, k%
For i = 2 To [a65536].End(3).Row
    str1 = Cells(i, 1).Value
    Do Until InStr(1, str1, Chr(34), 3) = 0
       j = InStr(1, str1, Chr(34), 3)
       k = InStr(j + 1, str1, Chr(34), 3)
       Cells(i, 256).End(xlToLeft).Offset(, 1) = Mid(str1, j + 1, k - j - 1)
       str1 = Right(str1, Len(str1) - k)
    Loop
Next i
End Sub

 用这个代码试试

更多追问追答
追问

如果读取同目录下的固定文件名的文本文件到A列呢?文本内容看图

追答
Sub a()
Dim str1$, i%, j%, k%,str2$
str2=thisworkbook.path
Workbooks.OpenText Filename:= str2 &"\你的文件名.txt", Origin:= _
        936, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 2), _
        TrailingMinusNumbers:=True
For i = 2 To [a65536].End(3).Row
    str1 = Cells(i, 1).Value
    Do Until InStr(1, str1, Chr(34), 3) = 0
       j = InStr(1, str1, Chr(34), 3)
       k = InStr(j + 1, str1, Chr(34), 3)
       Cells(i, 256).End(xlToLeft).Offset(, 1) = Mid(str1, j + 1, k - j - 1)
       str1 = Right(str1, Len(str1) - k)
    Loop
Next i
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-27
展开全部
貌似用公式MID就可以实现,如果字数固定的话;如果用VBA也是用这个函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式