Board logo

標題: [發問] 活頁簿連線 [打印本頁]

作者: leoncc    時間: 2014-6-21 12:00     標題: 活頁簿連線

想請教各位 我自己參考版上資料寫了幾個簡單的查詢股票程式,
問題來了,我每按查詢一次,如圖的活頁簿連線就會多一筆,
等差不多10幾筆的時候,每次最後按儲存離開時,excel就當機

所以我每次儲存前都要手動刪除所有連線,
不知有無語法可以每查詢一次就刪除該活頁簿連線? 謝謝各位 :Q

[attach]18524[/attach]
  1. Sub 財務比率()
  2.    
  3.     Call StockNo
  4.     Dim URL As String
  5.    
  6.    
  7.     'X As String
  8.     'X = Worksheets("營收").Range("A2")
  9.    
  10.     URL = "URL;http://dj.mybank.com.tw/z/zc/zcq/zcra_" & 股票代號 & ".djhtm"
  11.    
  12.     With ActiveSheet.QueryTables.Add(Connection:=URL, Destination:=ActiveSheet.Range("K68"))
  13.         .TablesOnlyFromHTML = True
  14.         .RefreshStyle = xlOverwriteCells
  15.         .WebSelectionType = xlSpecifiedTables
  16.         .WebFormatting = xlWebFormattingNone
  17.         .AdjustColumnWidth = False
  18.         .WebTables = "1"
  19.         .WebPreFormattedTextToColumns = True
  20.         .WebConsecutiveDelimitersAsOne = True
  21.         .WebSingleBlockTextImport = False
  22.         .WebDisableDateRecognition = False
  23.         .WebDisableRedirections = False
  24.         .Refresh BackgroundQuery:=False
  25.         Cells.Hyperlinks.Delete
  26.     End With
  27.     'Cells.Hyperlinks.Delete
  28. End Sub

  29. Private Sub CommandButton1_Click()
  30. 'StockNo
  31. 財務比率
  32. End Sub
複製代碼

作者: stillfish00    時間: 2014-6-21 22:06

回復 1# leoncc
.Refresh BackgroundQuery:=False
.delete
作者: leoncc    時間: 2014-6-22 00:19

回復 2# stillfish00

還是不行耶..每執行連線還是持續增加中...
作者: leoncc    時間: 2014-6-22 00:43

終於找到了 謝謝,方法如下:
  1. Sub 刪除連線()

  2. For i = 1 To ActiveWorkbook.Connections.Count
  3. If ActiveWorkbook.Connections.Count = 0 Then Exit Sub
  4. ActiveWorkbook.Connections.Item(i).Delete
  5. i = i - 1
  6. Next i

  7. End Sub
複製代碼
執行Button Click時再加入下語法就搞定了:
  1. Private Sub CommandButton1_Click()

  2. 財務比率
  3. 刪除連線
  4. End Sub
複製代碼

作者: stillfish00    時間: 2014-6-22 21:09

回復 3# leoncc
確定嗎?  
你先全部連線刪除
再插入24行後面試..
作者: leoncc    時間: 2014-6-23 18:57

回復 5# stillfish00


    是的 我手動全部刪除連線後測試,執行後還是有跑出來....對了我的是2010版本的 感恩中...

[attach]18544[/attach]
  1. Sub 財務比率()
  2.    
  3.     Call StockNo
  4.     Dim URL As String
  5.    
  6.    
  7.     'X As String
  8.     'X = Worksheets("營收").Range("A2")
  9.    
  10.     URL = "URL;http://dj.mybank.com.tw/z/zc/zcq/zcra_" & 股票代號 & ".djhtm"
  11.    
  12.     With ActiveSheet.QueryTables.Add(Connection:=URL, Destination:=ActiveSheet.Range("K68"))
  13.         .TablesOnlyFromHTML = True
  14.         .RefreshStyle = xlOverwriteCells
  15.         .WebSelectionType = xlSpecifiedTables
  16.         .WebFormatting = xlWebFormattingNone
  17.         .AdjustColumnWidth = False
  18.         .WebTables = "1"
  19.         .WebPreFormattedTextToColumns = True
  20.         .WebConsecutiveDelimitersAsOne = True
  21.         .WebSingleBlockTextImport = False
  22.         .WebDisableDateRecognition = False
  23.         .WebDisableRedirections = False
  24.         .Refresh BackgroundQuery:=False
  25.          Cells.Hyperlinks.Delete
  26.         .Delete
  27.       
  28.     End With
  29.     'Cells.Hyperlinks.Delete
  30. End Sub
複製代碼

作者: stillfish00    時間: 2014-6-23 19:24

回復 6# leoncc
你的 StockNo 是不是也有新增連線?
我也是Excel 2010,底下這樣是沒問題的
  1. Sub 財務比率()
  2.     Dim URL As String
  3.    
  4.     URL = "URL;http://dj.mybank.com.tw/z/zc/zcq/zcra_" & 1101 & ".djhtm"
  5.    
  6.     With ActiveSheet.QueryTables.Add(Connection:=URL, Destination:=ActiveSheet.Range("K68"))
  7.         .TablesOnlyFromHTML = True
  8.         .RefreshStyle = xlOverwriteCells
  9.         .WebSelectionType = xlSpecifiedTables
  10.         .WebFormatting = xlWebFormattingNone
  11.         .AdjustColumnWidth = False
  12.         .WebTables = "1"
  13.         .WebPreFormattedTextToColumns = True
  14.         .WebConsecutiveDelimitersAsOne = True
  15.         .WebSingleBlockTextImport = False
  16.         .WebDisableDateRecognition = False
  17.         .WebDisableRedirections = False
  18.         .Refresh BackgroundQuery:=False
  19.          Cells.Hyperlinks.Delete
  20.         .Delete
  21.       
  22.     End With
  23. End Sub
複製代碼

作者: leoncc    時間: 2014-6-23 19:45

回復 7# stillfish00

我把"股票代號"拿掉 StockNO也拿掉 直接放入股票的代號 連線還是有耶:'(   謝謝
  1. Sub 財務比率()
  2.    
  3.     'Call StockNo
  4.     Dim URL As String
  5.    
  6.    
  7.     'X As String
  8.     'X = Worksheets("營收").Range("A2")
  9.    
  10.     URL = "URL;http://dj.mybank.com.tw/z/zc/zcq/zcra_" & 1101 & ".djhtm"
  11.    
  12.     With ActiveSheet.QueryTables.Add(Connection:=URL, Destination:=ActiveSheet.Range("K68"))
  13.         .TablesOnlyFromHTML = True
  14.         .RefreshStyle = xlOverwriteCells
  15.         .WebSelectionType = xlSpecifiedTables
  16.         .WebFormatting = xlWebFormattingNone
  17.         .AdjustColumnWidth = False
  18.         .WebTables = "1"
  19.         .WebPreFormattedTextToColumns = True
  20.         .WebConsecutiveDelimitersAsOne = True
  21.         .WebSingleBlockTextImport = False
  22.         .WebDisableDateRecognition = False
  23.         .WebDisableRedirections = False
  24.         .Refresh BackgroundQuery:=False
  25.         Cells.Hyperlinks.Delete
  26.         .Delete
  27.         
  28.     End With
複製代碼
[attach]18545[/attach]
[attach]18546[/attach]
作者: stillfish00    時間: 2014-6-23 19:54

回復 8# leoncc
你執行#8樓
執行三次會有三個連線?
作者: leoncc    時間: 2014-6-23 21:04

回復 9# stillfish00


    是的 會不會是我的excel有問題要重灌阿 ?

[attach]18550[/attach]
作者: stillfish00    時間: 2014-6-23 22:32

回復 10# leoncc
重灌是不用啦,你那樣全部連線刪除也是一種方法嘛
我只是想不透哪裡造成這種差異而已,謝謝你
作者: leoncc    時間: 2014-6-23 22:41

小弟是新手 語法東湊西湊的 我要謝謝你才是
作者: shuasa    時間: 2017-7-13 02:04

回復 12# leoncc


    http://forum.twbts.com/thread-16249-1-1.html
試試看




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)