1

次の文字列があります。

BAXH14#cote href="nego_cotes_in_en.php?symbol=BAX&amp;instrument=BAXH14#cote">14 MAR</A></TD>
<TD>98.620</TD>
<TD>98.630</TD>
<TD>98.620</TD>
<TD>0</TD>
<TD>33,568</TD>
<TD>6,071</TD><

98.620 のように 3 行目を取得したいと思います。この文字列の数字は毎日変わるので、どんな助けでも素晴らしいでしょう.

4

4 に答える 4

6

それがすべて1つの文字列であり、解析しているファイルではない場合、または複数の行にまたがっている場合の最も簡単な方法は、次を使用することです。文字列が Sheet1 の Range("A1") にあると仮定します。

Dim dataSplit() As String
Dim returnData As String

dataSplit = Split(Sheet1.Range("A1").Value2, "</TD>")

returnData = Right$(dataSplit(2), Len(dataSplit(2)) - 5)
于 2012-12-12T23:06:08.097 に答える
1

VBAを使用していると仮定すると、これでうまくいきます.strを文字列に設定するだけです

Sub test()
Dim str As String
Dim n As Integer

n = 3

str = "testData<TD>98.620</TD><TD>98.630</TD><TD>98.620</TD><TD>0</TD><TD>33,568</TD><TD>6,071</TD>"
subSTR = str
For i = 1 To n
    If Not (InStr(1, subSTR, "<TD>") = 0) Then
        subSTR = Right(subSTR, Len(subSTR) - InStr(1, subSTR, "<TD>") - 3)
    Else
        subSTR = ""
        Exit Sub
    End If
Next i

finalStr = Left(subSTR, InStr(1, subSTR, "</TD>") - 1)

End Sub
于 2012-12-12T22:52:37.300 に答える
1

Mid (string、start、length) と find (what、where、startpos) を使用すると、2 つの改行をスキップできます - char (10) と、次のように 2 番目と 3 番目の改行位置の差に長さを設定します。

=MID(A1,FIND(CHAR(10),A1,FIND(CHAR(10),A1,1)+1),FIND(CHAR(10),A1,FIND(CHAR(10),A1,FIND(CHAR(10),A1,1)+1)+1)-FIND(CHAR(10),A1,FIND(CHAR(10),A1,1)+1))

A1 には文字列が含まれていると想定されます。行末マーカーとして扱う必要がある場合は、すべての文字 (10) を "" に置き換えます。

エレガント?もちろん違います!

于 2012-12-12T22:39:06.460 に答える
0

簡単な方法は、 Split関数を使用して文字列を配列に分割することです。これは文字列を受け取り、デバッグ ウィンドウに 3 番目の項目を表示します。このような...

Sub split_td()
    Dim values() As String
    Dim sourceString As String
    Dim result As String

    ' get your source data here
    sourceString = "<td>1</td><td>2</td><td>3 - pick me!</td><td>4</td>"

    'break it into an array of strings
    values = Split(sourceString, "<td>")

    'tidy up the end tag
    result = Replace(values(3), "</td>", "")

    Debug.Print values(3)
End Sub

シートに余分な列を追加しても構わない場合は、次のようなことができます...

A------------------------     B----------------------------------------------------------

                              <td>1</td><td>2</td><td>3 - pick me!</td><td>4</td>
=SEARCH("<td>", B$1)    
=SEARCH("</td>",B$1)        =SUBSTITUTE(SUBSTITUTE(MID(B$1,A2,A3-A2),"/",""),"<td>","")
=SEARCH("</td>",B$1,A3+1)       =SUBSTITUTE(SUBSTITUTE(MID(B$1,A3,A4-A3),"/",""),"<td>","")
=SEARCH("</td>",B$1,A4+1)       =SUBSTITUTE(SUBSTITUTE(MID(B$1,A4,A5-A4),"/",""),"<td>","")
(etc)

次に、テキスト操作のポイントを列 A に配置し、列 B で抽出を行います。

于 2012-12-12T23:17:56.293 に答える