2016-07-20 15 views
0

私は現在、仕事中のプロジェクトで働いています(私はインターンです)、完了までに数週間かかると思われます。これは、基本的に、あるWebサイトから別のWebサイトへの移行コピーアンドペーストジョブです。退屈な時間を無駄にせず、自分自身で仕事に勝つために(私はタイムリーにこれを完成させることができます)、プロセスを自動化する方法を探しています。現在、私はプロセスの各ステップを考え出した。HTMLファイル(VBA?)からデータを抽出する

基本的に、私は、htmlファイルをダウンロードし、それを新しいページにコピーする必要があるサイトの各ページのテキストファイル(1000以上)に変換する別の自動化プログラムを持っています。私がこのhtmlファイルで行う必要があるのは、ボディだけを抽出することです。抽出する開始点と終了点を特定しました。両方とも、すべてのhtmlファイルに表示されます。

私は現在、ファイルを開き、データを抽出し、新しいファイルに結果を書き込むためにExcelでVBAを使用しようとしています。コピー&ペーストのプロセスを自動化できます。

私が理解できないことは、これらの2点間でデータを抽出する方法です。私は2つの文字列、すなわち "Start" & "End"の間でデータを抽出することができますが、2つのhtmlタグの間でデータを抽出することはできません。どんな提案も素晴らしいだろう。私はプログラマーではなく、このプロジェクトをできるだけ早く完了するために飛行を学んでいます。

もう一度おねがいします。

+4

'start'と' end'を行うことができたら、なぜ ''と ''を実行できませんか? Stack Overflowへようこそ - 人々は一般的に、あなたがすでに問題を解決しようとしたコードを投稿していただければ幸いです。 –

答えて

0

は、それが次のように行われることになります。

Sub Test() Dim IE As Object 

Set IE = CreateObject("InternetExplorer.Application") 
With IE 
    .Visible = True 
    .Navigate "http://www.marketwatch.com/investing/stock/aapl/analystestimates" ' should work for any URL 
    Do Until .ReadyState = 4: DoEvents: Loop 

     x = .document.body.innertext 
     y = InStr(1, x, "Average Target Price:") 
     Z = Mid(x, y, 6) 

     Range("A1").Value = Trim(Z) 

     .Quit 
    End With 
End Sub 

で具体的なケースは、次のようなものになります。

a = .document.body.innertext 
b = InStr(1, x, "Start") 
c = InStr(1, y, "End") 

d = Mid(a, b, (c-b)) 

Range("A1").Value = Trim(d) 
+0

それぞれの次元をどのように設定する必要がありますか?それとも私はしないのですか? –

関連する問題