在excel中查找vba代码中的函数

时间:2017-11-15 16:56:38

标签: xml excel vba

我得到了以下xml文件,该文件全部在一行文本中(这里有多行以使其更具可读性):

<bla>
    <blabla>
        <moreblabla>
            <colheader>item1</colheader>
            <colheader>item2</colheader>
            <row>
                <col>apple1</col>
                <col>apple2</col>
            </row>
            <row>
                <col>pear1</col>
                <col>pear2</col>
            </row>
            <row>
                <col>grape1</col>
                <col>grape2</col>
            </row>
        </moreblabla>
    </blabla>
</bla>

我想做以下事情,因为我不知道<colheader>我想要使用excel函数find之前的blabla长度,以便拥有我所属部分的起始字符感兴趣的是:xml文件的row col部分。

这是我的初步脚本:

Sub replacexml()
Dim objFSO
Const ForReading = 1
Const ForWriting = 2
Dim objTS
Dim strContents As String
Dim fileSpec As String
Dim start As Long
Dim finish As Long
Dim lenght As Long

fileSpec = "C:\path\out.xml"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(fileSpec, ForReading)
strContents = objTS.ReadAll

start = InStr(strContents, "<colheader>")
finish = InStr(strContents, "</moreblabla>")
lenght = finsh - start
strContent = Mid(strContents, start, lenght)

objTS.Close

Set objTS = objFSO.OpenTextFile(fileSpec, ForWriting)
objTS.Write strContents
objTS.Close

End Sub

但我收到错误,我猜是没有识别Find函数。我如何让find功能起作用?

更新:现在mid功能出现了问题:

  strContent = Mid(strContents, start, lenght)

1 个答案:

答案 0 :(得分:0)

如果您尝试在字符串中查找某些文本,可以使用Instr

  

https://www.techonthenet.com/excel/formulas/instr.php

语法

InStr( [start], string, substring, [compare] )

希望它有所帮助。

对于MID函数:

  

https://www.techonthenet.com/excel/formulas/mid.php   语法

MID( text, start_position, number_of_characters)

您应该定义起始位置和字符数,两者都应该是数字。