2016-05-09 8 views
1

私は同僚のためのプロジェクトに取り組んでおり、問題が発生しました。以前はExcel VBAで作業していませんでしたが、コーディングではほとんどトレーニングを受けていません。 StackOverflowや数多くの他のウェブサイトは大きな助けになっています。私はこれのためにどこに行くべきか分かりません。出荷追跡、返却日時はランタイムエラー424が必要Object Required

目標。

  • ここに私のコードは、これまで

    Public Function RoadRunnerTracking() 
    Dim IE1 As Object 
    Dim DeliveryCollection As Object 
    Dim ProUrl As String 
    
    
    Set IE1 = CreateObject("InternetExplorer.application") 
    
    ProUrl = "https://www.rrts.com/Tools/Tracking/Pages/MultipleResults.aspx?PROS=" & Range("a1") 
    
    With IE1 
        .Visible = True 
        .Navigate ProUrl 
        Do Until Not IE1.Busy And IE1.readyState = 4: DoEvents: Loop 
    End With 
    
    Set DeliveryCollection = Trim(IE1.document.getElementsByTagName("Span")(16).innerText) 'THIS LINE RETURNS A RUN TIME ERROR 424 OBJECT REQUIRED 
    Range("b1").Value = DeliveryCollection 
    Set IE1 = Nothing 
    
    End Function 
    

    です(セルB1)を得意とする

  • リターンバック納期をロードするページのためのWebページ
  • 待機

に移動しますこれは洗練された機能ではありませんが、私は認識しています。私はちょうどいくつかのよじれを解決しようとしています。

私が理解できないことは、その行を別の関数でテストしたところ、うまくいきました。トラッキング番号を実行するのではなく、リンクを結果ページに直接貼り付けるテスト機能を気にしましたが、同じであると思います。ここで

はラインがで動作するようですコードです。

Public Function PartTwoTest() 
Dim IE1 As Object 

Set IE1 = CreateObject("InternetExplorer.application") 

With IE1 
    .Visible = True 
    .Navigate "https://www.rrts.com/Tools/Tracking/Pages/MultipleResults.aspx?PROS=359607744" 
    Do Until IE1.readyState = 4 
    DoEvents 
    Loop 
End With 

DeliveryCollection = Trim(IE1.document.getElementsByTagName("Span") (16).innerText) 
Range("b1").Value = DeliveryCollection 

Set IE1 = Nothing 

End Function 

任意の助けをいただければ幸いです。

+0

トラッキング番号のページに直接移動して、次のようなリンクを作成するほうが簡単ではないでしょうか? 'https://www.rrts.com/Tools/Tracking/Pages/MultipleResults.aspx?PROS= 123456789'ここで、123456789は仮定された追跡番号です。 – Ralph

+0

それは大きなポイントです。私は彼がとてもシンプルだったことに気付かなかった。私はそれを反映するためにコードを間違いなく変更します。残念ながら(まだ試していないのですが)、実行時エラーに影響しませんでした。私のコードははるかにシンプルになると思いますが、私はまだ同じ問題を抱えています。 最終的には、パイロットやフェデックスなどのキャリアでも動作するように修正したいと思います。私は彼らのURLがとてもシンプルなのかどうか分からないが、少なくともこのアプリケーションではうまくいくだろう。 – sdrloveshim

+0

各ウェブサイトは異なるので、1つの投稿を使ってそれをすべて解決することはできません。各投稿は、特定の問題に非常に特化している必要があります。 [良い質問をする方法](http://stackoverflow.com/help/how-to-ask)を読んで、おそらくこのサイトの詳細についてのツアーをご覧ください:http:その後、新しい洞察を反映するために上記の投稿を修正することができます。 – Ralph

答えて

1

deliverycollectionは文字列である必要があります。

+0

はい、ありがとうございます。それはそれを世話しました。今、必要に応じてこれを動作させるために100以上の問題にぶつかり合って、ハハ。うまくいけば何でも私は自分自身を整理することができますが、あなたと他の誰もが大きな助けをしています。 – sdrloveshim

関連する問題