2016-07-06 6 views
0

私は2つの細胞を選択し、それらを "とまり木"と "統計"と命名した。私がセルに入力したものを使って、私は検索を実行し、htmlコード(私は安全のために変更された)から必要なデータを検索することができました。しかし、私の問題は、単一のセルだけでなく、列全体を入力したいということです。また、単一の列に複数の結果を生成します。入力の数も定期的に〜300に変わるので、特定の範囲を指定することはできません。htmlマクロを使用してVBAでExcelから列を入力する際に​​助けが必要です。

Private Sub Worksheet_Change(ByVal Target As Range) 
If Target.Row = Range("perch").Row And _ 
Target.Column = Range("perch").Column Then 
    Dim IE As New InternetExplorer 
    'IE.Visible = True 
    IE.navigate "http://"google/not_real_link" 
Do 
DoEvents 
    Loop Until IE.readyState = READYSTATE_COMPLETE 
    Dim Doc As HTMLDocument 
    Set Doc = IE.document 
    Dim sTD As String 
    sTD = Trim(Doc.getElementsByTagName("td")(33).innerText) 
    IE.Quit 
    Range("stats").Value = sTD 


End If 
End Sub 

答えて

0

あなたは通常Worksheet_Changeのinstaed使用Worksheet_SelectionChangeイベントが表示されます。

  • EnableEventsをオフにし

    :ここ

    は、これらのイベントを使用して上のいくつかのヒントがあります。そうでない場合は、イベントを再トリガーして無限ループに陥る可能性があります。

  • Intersectメソッドを使用して、範囲とターゲットが交差するかどうかをテストします。

  • 複数のセルが有効になっているかどうかを確認するには、Target.Cells.Countを使用する必要があります。

ます。Private Sub Worksheet_SelectionChange(ByValの対象を範囲) ない交差(対象、範囲( "パーチは"))次に Application.EnableEvents = Falseの

Application.EnableEvents = True 
End If 

End Subの

何もしない場合

複数の値をどのように扱いたいのかよく分かりません。

リストの最後に値を追加する関数を作成すると、よく役立ちます。

Sub AddStatusRow(value As Variant) 
    Const StatColumn = 5 
    Dim lastRow As Long 

    lastRow = Range(Cells(1, StatColumn), Cells(Rows.count, StatColumn)).End(xlUp).Row + 1 

    Cells(lastRow, StatColumn) = value 

End Sub 

Doc.getElementsByTagName("td")(33).innerTextではなく、テーブルの行を反復処理することを検討してください。

関連する問題