2016-05-10 21 views
1

マクロを書き込もうとしています。マクロは、ユーザーが列Dの最初の空のセルをクリックすることによって動作するはずです。次に列Cの左側の追跡番号を取得する必要があります。基本的に1つの行に移動し、次の行を再度クリックすることなく同じ行を行います。 C列の最初のemtpyセルが出現するまでプロセスをループします。毎週特定のセルで開始することはできません。これは、毎週追加された進行中のスプレッドシートであるため、下端を閉じることになります。例えば、私が始めた今週はD2343細胞でした。完成したコードではありませんが、どんな提案も役立ちます。私はかなり新しくコーディングすることができ、VBAを凌駕するためには非常に新しいので、私に同行してください。これについては、activecellを使用するよりも良い方法があるかもしれませんが、どうすればよいか分かりません。この実行時エラー1004がDo While Not ActiveCell.Offest(-1、RowCount).Value = ""

Public Sub Tracking() 
Dim IE As Object 
Dim ReturnValue As String 
Dim ProUrl As String 
Dim RowCount As Integer 

Set IE = CreateObject("InternetExplorer.application") 

RowCount = 0 

'THIS LINE RETURN THE ERROR 
Do While Not ActiveCell.Offset(-1, RowCount).Value = "" 

ProUrl = "https://www.rrts.com/Tools/Tracking/Pages/MultipleResults.aspx?PROS=" & ActiveCell.Offset(-1, RowCount).Value 

With IE 
    .Visible = False 
    .Navigate ProUrl 
    Do Until Not IE.Busy And IE.readyState = 4: DoEvents: Loop 
End With 

ReturnValue = Trim(IE.document.getElementsByTagName("Span")(16).innerText) 
ActiveCell.Offset(, RowCount).Value = ReturnValue 

RowCount = RowCount + 1 

Loop 

IE.Quit 
Set IE = Nothing 

End Sub 

助けていただければ幸いです。 Stackoverflowはすばらしいリソースでした。ありがとうございました。

+0

働い '#のN/A' – litelite

答えて

1

あなたのOffsetメソッドにエラーがあると思われます。最初の引数は行オフセットで、2番目の引数は列オフセットでなければなりません。あなたはそれを後方に持っているようです。

は、それを変更してみてください:

Do While Not ActiveCell.Offset(RowCount, -1).Value = "" 
+0

はいのようなエラーが発生した任意の結合されたセルまたはセルがあります。そして、あなたは知っています、私は昨日それを持っていましたが、私はそれが間違っていたので、何か他のことをするようにコードを調整し、変更しました。 – sdrloveshim

+0

@sdrloveshim VBAをもっと使いこなすと、時には謎めいたエラーメッセージが実際に何を意味するのかを理解し始めるでしょう。存在しないオブジェクトに対してアクションを実行しようとすると、エラー1004がポップアップします。あなたの場合、列Aの前に列をオフセットしようとすると、それは明らかに存在しません。すぐにこれらのエラーを自分で捕捉し始めるでしょう。 – user3561813

関連する問題