返回列表 上一主題 發帖

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

回復 40# lcctno

合1 合2  均能正常動作
不信您可將按鈕5指定句集為合1或合2

是可以但無法在VBA視窗中按F5執行.
SUB 合3(合3) ,括弧內就是要接收的參數
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 41# GBKEE
我之前是用同樣的語法  Sub 合3() 也無法操作 出現400(如圖)  但您說要改成 Sub 合3(合3) ??? 奇怪 語法一樣是使用Sub 合2() 可執行 但Sub 合3() 就出現400???

TOP

回復 35# no3-taco

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

    javascript:;

234.jpg (271 KB)

234.jpg

TOP

回復 42# lcctno
Sub 合3() 的名稱改成 Sub test() ,再試試看
回復 43# no3-taco
我是想請你將第10貼的原本程式碼,在IE10的下執行看看Length最終是多少
  1. Loop Until E.all.Length >= IIf(i = 0, 431, 150)
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 44# GBKEE

win7(64bit) ,ie10

415和135

javascript:;

123.jpg (293.66 KB)

123.jpg

456.jpg (298.11 KB)

456.jpg

TOP

回復 24# azrael19

我實在是真的不太好意思再麻煩您將下圖之整排例如1.27(0.10%) 之所以0.10%) 拿掉 由於我真的不懂 故 還是厚著臉皮 麻煩您有空時幫個大忙 謝謝您的辛勞

TOP

回復 44# GBKEE
Sub 合3() 的名稱改成 Sub test() 這個我試過
會變成找不到巨集 如圖

TOP

本帖最後由 GBKEE 於 2015-7-27 13:34 編輯

回復 47# lcctno


   
你有說: 不信您可將按鈕5指定巨集為合1或合2
按鈕5要重新指定巨集


回復 45# no3-taco
謝謝你
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

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

回復 47# lcctno


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

TOP

回復 46# lcctno

是這樣嗎
  1. Option Explicit
  2. Sub Ex()
  3.     Dim E As Object, AR(), i As Integer, o As Object, k As Integer
  4.     AR = Array("http://www.yuantaetfs.com/#/RtNav/Index", "http://www.yuantaetfs.com/#/Home/Index")
  5.     'Ar = Array(網址:即時淨值,網址:國內指數) 網址置入陣列
  6.     ActiveSheet.UsedRange.Clear
  7.     For i = 0 To 1
  8.         With CreateObject("InternetExplorer.Application")
  9.             .Visible = True
  10.             .Navigate AR(i)
  11.             Do While .Busy Or .readyState <> 4: DoEvents: Loop
  12.             If i = 0 Then  '國內指數:不需按下同意鍵
  13.                 Do
  14.                     Set E = .Document.getElementByid("Agree")
  15.                 Loop Until Not E Is Nothing
  16.                 E.Click
  17.             End If
  18.             Do
  19.                 Do
  20.                     Set E = .Document.getElementsByTagName("TABLE")(21 + i)
  21.                     '即時淨值 第21個 "TABLE" ,'國內指數 第22個 "TABLE"
  22.                 Loop Until Not E Is Nothing
  23.             'Loop Until E.all.Length >= IIf(i = 0, 431, 150) '
  24.             Loop Until InStr(1, E.outerHTML, IIf(i = 0, "00638R", "電子類加權股價指數"))  '改用相關字串確認是否有資料
  25.             
  26.             '刪除▲ ▼ 符號並加上數字負號顯示
  27.             If 0 = i Then
  28.                 For Each o In E.getElementsByClassName("ng-binding upcolor")
  29.                     If InStr(1, o.innerText, "▲ ▼") Then
  30.                         o.innerHTML = Mid(o.innerText, 5)
  31.                     End If
  32.                 Next
  33.                 For Each o In E.getElementsByClassName("ng-binding downcolor")
  34.                     If InStr(1, o.innerText, "▲ ▼") Then
  35.                         o.innerHTML = "-" & Mid(o.innerText, 5)
  36.                     Else
  37.                         o.innerHTML = "-" & o.innerText
  38.                     End If
  39.                 Next
  40.             Else
  41.                 '將指數漲跌及漲跌幅%字串分開並加上負號顯示
  42.                 For Each o In E.getElementsByClassName("ChangesText2 upcolor")
  43.                     k = InStr(1, o.innerText, "(")
  44.                     If 0 < k Then
  45.                         o.outerHTML = "<td>" & Mid(o.innerText, 1, k - 1) & "</td><td>" & Replace(Mid(o.innerText, k + 1), ")", "</td>")
  46.                     End If
  47.                 Next
  48.                 For Each o In E.getElementsByClassName("ChangesText2 downcolor")
  49.                     k = InStr(1, o.innerText, "(")
  50.                     If 0 < k Then
  51.                         o.outerHTML = "<td>-" & Mid(o.innerText, 1, k - 1) & "</td><td>-" & Replace(Mid(o.innerText, k + 1), ")", "</td>")
  52.                     End If
  53.                 Next
  54.             End If
  55.             .Document.body.innerHTML = Replace(E.outerHTML, "<span class=""ng-hide"" ng-show=""o.price == 0"">0</span>", "") ' 去除 [折溢價] 數字後面多餘的0
  56.             '.Document.body.innerHTML = E.outerHTML
  57.             'Stop
  58.             .ExecWB 17, 2       '  Select All
  59.             .ExecWB 12, 2       '  Copy selection
  60.             With ActiveSheet
  61.                 .Range("A" & IIf(i = 0, 1, 27)).Select
  62.                 .PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True
  63.                 With .Range(IIf(i = 0, "D16:D17", "C27:C28")).Interior
  64.                     .ColorIndex = 35
  65.                     .Pattern = xlSolid
  66.                 End With
  67.             End With
  68.             .Quit        '關閉網頁
  69.         End With
  70.     Next
  71. End Sub
複製代碼

TOP

        靜思自在 : 一句溫暖的話,就像往別人身上灑香水,自己會沾到兩三滴。
返回列表 上一主題