2016-03-19 18 views
1

これは初めてのことですが、私はこれを言及していません...しかし、私はVBAの新人であり、助けが必要です... 私は持っていますvba excelを使用してWebページのボックスに値を入力する際の問題。ウェブページの値をExcelで自動的に入力する方法

ボックスのソースコードは、私が書いたコードは、それが値を設定しdoesntの

Sub xx() 


Dim ie As Object 
Dim doc As HTMLDocument 
Dim lo As IHTMLElementCollection 
Dim l As IHTMLElement 

Set ie = CreateObject("internetexplorer.application") 
ie.navigate "mysiteurl" 
ie.Visible = True 

Do While ie.Busy: DoEvents: Loop 
Do While ie.readyState <> 4: DoEvents: Loop 

Set doc = ie.document 

doc.getElementById("MultiRenameTable_OR:wt.epm.EPMDocument3053059700_NEWNAME_JSID").Value = "xyz" 

End Sub 

ある

<input 
name="MultiRenameTable_OR:wt.epm.EPMDocument:3053059700_NEWNAME_JSID" 
class="enabledfield" 
id="MultiRenameTable_OR:wt.epm.EPMDocument:3053059700_NEWNAME_JSID" 
style="WIDTH:98% onblur="setJSAttributeValue(this,'NEWNAME_JSID','MultiRenameTable', 'epmdoc_09876889_u46_drw',undefined)" type="text" size="25" ?="" 
trlId="MultiRenameTable_epmdoc_09876889_u46_drw_NEWNAME_JSID"></input> 

です。 また、IEを起動するたびに変更され続けるため、「名前」、「ID」、「trlID」、「onblur」は使用できません。 これを手伝ってください。

答えて

1

私はsetJSAttributeValueから、名前に常に "NEWNAME_JSID"という部分文字列が含まれていると推測しています。ちょうどそれらをループは名前でそれを探して、その後、入力されたすべての要素をつかむ:

Sub xx() 

    Dim ie As Object 
    Dim doc As HTMLDocument 
    Dim lo As IHTMLElementCollection 
    Dim l As IHTMLElement 

    Set ie = CreateObject("internetexplorer.application") 
    ie.navigate "mysiteurl" 
    ie.Visible = True 

    Do While ie.Busy: DoEvents: Loop 
    Do While ie.readyState <> 4: DoEvents: Loop 

    Set doc = ie.document 
    Set lo = doc.getElementsByTagName("input") 

    For Each l In lo 
     If l.Name Like "*NEWNAME_JSID*" Then 
      'Do whatever. 
      Exit For 
     End If 
    Next l 

End Sub 
+0

こんにちはコミンテルン...私はそれがオブジェクト変数またはブロック変数が定義されていないと言う...それを試してみましたが、運がなかったです。 ..私は興味を持っている要素がコレクションに入っているかどうかをチェックするために "lo"の時計を設定していましたが、そうではないことがわかりました...他のタグ名、クラス名で検索しようとしました...しかしcouldnそれを見つけるつもりはありません....私は "マルチリネームテーブル"の下の要素は回収可能ではないと思います...これらのアイテムを収集する方法はありますか? – NEO

+0

@NEO - getElementsByTagName( "input")は何も返しません?私はおそらく、何が起こっているのか把握するために、完全なページのソースを参照する必要があります。一般公開されているURLですか? – Comintern

+0

@ Comintern ...私の会社のウェブページアプリケーションで、従業員にアクセスできます。あなたがソースページ全体を提供できない場合があります。まず、コンポーネントの検索を行うリネームプロセスを自動化しようとしています。私は新しい名前を置く必要があるテーブル/フォーム(実際にはわからない)を開きます...テーブル/フォームのソースコードは – NEO

関連する問題