2016-03-19 19 views
1

Bu, ilk defa böyle bir şeyden bahsetmiyorum ... ama evet ben bir çaylaklıyım ve yardım ihtiyacım var ... vba excel kullanarak web sayfasındaki bir kutuda bir değeri doldurmakta sorun.Web sayfasındaki bir kutudaki değeri otomatik olarak excel kullanarak nasıl dolduracağız

kutusunun kaynak kodu yazdığım kod O değeri 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 

olduğunu

<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> 

olduğunu. Ayrıca "name", "ID", "trlID", "onblur" kullanamıyorum çünkü IE'yi her başlattığımda sürekli değişiyorlar. Lütfen bana yardım edin.

cevap

1

Adın her zaman "NEWNAME_JSID" alt dizesini içereceğini tahmin ediyorum setJSAttributeValue. Tam o içlerinden döngü adına onu arıyor, giriş elemanlarının tüm kapmak:

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

Merhaba Komintern'i ... Ben denedim ama hayır şans vardı ... değişken veya blok değişken değil tanımlanmış nesne söylüyor. .. Ben sadece ilgilendiğim elemanın koleksiyonda olup olmadığını kontrol etmek için "lo" üzerine bir saat koymuştum ve bulunmadığını buldum ... Diğer etiket adlarında, sınıf adı altında arama yapmayı denedim ama ... Ben bulamadım .... Bazı "Ben çok yeniden adlandırılan tablo" altındaki öğeleri düşünemiyorum değil ... bu öğeleri toplamak için bir yol var mı? – NEO

+0

@NEO - getElementsByTagName ("input") hiçbir şey döndürmez mi? Neler olup bittiğini anlamak için muhtemelen tam sayfa kaynağını görmeliyim. Halka açık bir URL mi? – Comintern

+0

@Comintern ... firmamın bir web sayfası uygulaması ve çalışanlarına da ulaşılabilir ... Bu yüzden size bütün kaynak sayfasını sağlayamayabiliriz.İlk olarak bileşeni aradığım bir yeniden adlandırma işlemini otomatikleştirmeye çalışıyorum ve rename.It tıklayın masa/formu (gerçekten emin emin) nerede yeni isim koymak gerekir ... Tablo/formun kaynak kodu – NEO

İlgili konular