返回列表 上一主題 發帖

[發問] 請問能否將2個VBA巨集合併成1個VBA巨集

本帖最後由 no3-taco 於 2015-7-26 09:24 編輯

先加入程式碼裡面那兩行,修改完後跑一次
應該會出現兩次訊息框,記住數字然後改
E.all.Length >= IIf(i = 0, 431, 150)  '第一次出現數字替換431 ,第二次出現數字替換150

無誤後,插入的那兩行就可以刪掉了
不曉得是不是ie版本不同的關係
  1. '.Visible = True                     '先隱藏

  2. Dim Atime: Atime = Timer     '加入這裡######_1
  3. Do
  4.     Do
  5.         Set E = .document.getElementsByTagName("TABLE")(21 + i)
  6.         '即時淨值 第21個 "TABLE" ,'國內指數 第22個 "TABLE"
  7.     Loop Until Not E Is Nothing
  8.     If Timer - Atime > 5 Then MsgBox E.all.Length: Exit Do     '加入這裡######_2
  9. Loop Until E.all.Length >= IIf(i = 0, 431, 150)     '跑過一次後要修改的地方
複製代碼

TOP

回復 20# GBKEE

我的是win7 , IE 10 , office2010 需要改成這樣
E.all.Length >= IIf(i = 0, 415, 135)

用(azrael19大大)修改的這一句也不錯
Loop Until 0 < InStr(1, E.outerHTML, IIf(i = 0, "滬深反", "台灣加權股價指數"))  '改用相關字串確認是否有資料

TOP

回復 22# GBKEE

其實我也不是很清楚,能在指點問題的癥結點在哪嗎

我抓到的數量就這麼多Loop Until E.all.Length >= IIf(i = 0, 415, 135),都比版大的少所以會卡住。(判斷式我寫不出完整的)

下面這兩句我執行都可以,有資料都會抓的到(沒有資料我就不知道了),不知道版大指的是什麼(我的判斷能力有限,沒有很深入了解)
Loop Until InStr(1, E.outerHTML, IIf(i = 0, "滬深反", "台灣加權股價指數"))
Loop Until 0 < InStr(1, E.outerHTML, IIf(i = 0, "滬深反", "台灣加權股價指數"))

TOP

回復 28# GBKEE

我還是不清楚版大指的是哪一句有問題
但是
E.all.Length >= IIf(i = 0, 415, 135) ,這個值你的版本還沒把數量抓完就會執行下一行了

TOP

回復 35# no3-taco

我本來以為會有順序的抓取,試了幾次好像都從40跳到415

    javascript:;

234.jpg (271 KB)

234.jpg

TOP

回復 44# GBKEE

win7(64bit) ,ie10

415和135

javascript:;

123.jpg (293.66 KB)

123.jpg

456.jpg (298.11 KB)

456.jpg

TOP

本帖最後由 no3-taco 於 2015-7-27 13:32 編輯

回復 47# lcctno


1.你按鈕要案右鍵,重新指定巨集,
2.不然就是點ㄧ下那個程式碼裡面任意位置再案f5

TOP

回復 53# lcctno

你貼的我有執行,沒有問題,也看不出哪裡有問題
我覺得可能是其他問題
建議你重開一個excel檔案,再測試看看
再不行我也沒辦法

TOP

        靜思自在 : 一個缺口的杯子,如果換一個角度看它,它仍然是圓的。
返回列表 上一主題