关于excel VBA

来源:百度知道 编辑:UC知道 时间:2024/06/04 12:13:02
Sub dataget()

Dim Rownumber As Integer
Rownumber = ActiveSheet.UsedRange.Cells.Rows.Count
Dim index As Integer
Dim p As Integer
p = 1

For index = 1 To Rownumber
If Left(Replace(Cells(index, 14), 1, 8, ""), 5) = "HS765" Then
Cells(p, 3) = Left(Replace(Cells(index, 1), 1, 18, ""), Len(Replace(Cells(index, 1), 1, 18, "")) - 3)
p = p + 1
Debug.Print a
End If
Next index
End Sub
并且excel第一列的文字内容为 <c i="HS765" v="Cardinal Health, Inc." />
谢谢
A1内容为<c i="HS765" v="Cardinal Health, Inc." />
A2内容为<c i="HB999" v="Cardinal Health, Inc." />
A3内容为<c i="HS765" v="Cardinal Wcs, Inc." />
A4...格式类似...
查询如果第一对引号内为HS765,则在B列相应行的单元格输出第二对引号内的内容。
由于原先对replace不懂,所以写的乱糟糟的。希望有谁可以提供好的方法。

乱七八糟。你擅长于把简单的东东复杂化吧。。直接把要求说清楚吧。。

是这样吗?如果A1的内容为<c i="HS765" v="Cardinal Health, Inc." />,就把A1改为HS765,在B1填上Cardinal Health, Inc.吗?

就按我上面说的套路把问题说清楚吧。。

是HS765的就在第二列输出v的值吗?不是HS765的就什么也不做??下面是代码:

sub test()
dim i,i1,i2,v1,v2
for i = 1 to 500
if cells(i,1) <> "" then
cc=cells(i,1).value
i1=instr(1,cc,chr(34),1)
i2=instr(i1+1,cc,chr(34),1)-1
if right(left(cc,i2),i2-i1) = "HS765" then
v1=instr(i2+2,cc,chr(34),1)
v2=instr(v1+1,cc,chr(34),1)-1
cells(i,2).value = right(left(cc,v2),v2-v1)
endif
endif
next i
end sub

你想干嘛呢?说一下嘛