Board logo

標題: 盈再表- 刪除外部連結 [打印本頁]

作者: capricorn    時間: 2011-10-24 16:46     標題: 盈再表- 刪除外部連結

Mike 各位同學大家好

我是10月份高雄班的同學,上完這兩天的課真的獲益良多。感謝Mike巴菲特神功傳授

我是使用excel2007版本,下載並另存新檔後發現仍有幾個盈在表執行速度緩慢(尤其是中港)
有發現在excel"資料-連線"的資料中存在有近2000筆的連結資料

是否請撰寫盈再表的同學檢查有無需要保存外部連結?

如外部連結不須保存,可以在程式執行完後刪除
一方面可以加快程式執行,另一方面檔案大小也可以進一步縮小
作者: mikeon88    時間: 2011-10-24 18:49

請問如何刪除外部連結 ?
作者: capricorn    時間: 2011-10-24 23:34

我是有在每個會產生外部連結的程式後加上

ActiveWorkbook.Connections("連線").Delete

希望有幫助
作者: mikeon88    時間: 2011-10-25 09:37

這樣抓不到資料
作者: capricorn    時間: 2011-10-25 10:47

下面是我每月用來連結集保中心資料的寫法

        With ActiveSheet.QueryTables.Add(Connection:= _
             "URL;http://www.tdcc.com.tw/smWeb/QryStock.jsp?SCA_DATE=" & strDate & "&SqlMethod=StockNo&StockNo=" & stkno &             "&StockName=&sub=%ACd%B8%DF", Destination:=Range("A3"))
             .Name = "持股分佈"
             .FieldNames = True
             .RowNumbers = False
             .FillAdjacentFormulas = False
             .PreserveFormatting = False
             .RefreshOnFileOpen = False
             .BackgroundQuery = True
             .RefreshStyle = xlOverwriteCells
             .SavePassword = False
             .SaveData = True
             .AdjustColumnWidth = False
             .RefreshPeriod = 0
             .WebSelectionType = xlSpecifiedTables
             .WebFormatting = xlWebFormattingNone
             .WebTables = "6,7,8"
             .WebPreFormattedTextToColumns = True
             .WebConsecutiveDelimitersAsOne = True
             .WebSingleBlockTextImport = False
             .WebDisableDateRecognition = False
             .WebDisableRedirections = False
             .Refresh BackgroundQuery:=False
         End With
         
         ActiveWorkbook.Connections("連線").Delete

PS:我也是半路出師...希望有所幫助
作者: mikeon88    時間: 2011-10-25 10:52

問題是,盈再表連續抓了好幾個表
每一個表後都要加上這一行程式嗎 ?
作者: mikeon88    時間: 2011-10-25 11:00

每一個表後都要加上這一行程式
一樣抓不到資料
作者: capricorn    時間: 2011-10-25 11:24

我在猜有可能是我寫程式的方式跟mike的盈再表有所不同
我的方式是每次執行時都會到各個外部連結下載資料
再貼到我所指定的位置
所以我不用保留外部資料在excel中

mike你的方式是不是利用Microsoft Query的功能
在excel中保留外部連結資料
當指定位置資料變動時
excel會自動到各個外部連結更新資料

所以把connection刪除後,反而抓不到資料了
作者: mikeon88    時間: 2011-10-25 12:00

From: alfidpan
Sent: Tuesday, October 25, 2011 11:22 AM

Dear   Michael

如何刪除外部連結 ?可以在巨集中加入以下的指令,如果加入後還是沒有效果,
就要利用其他工具先將先前舊的命名範圍刪除,後來的命名範圍就會受到以下的巨集進行刪除動作,

其他國家的盈再表也可以一樣利用以下的巨集去處理,但是要修改Worksheets("中股")......等之名稱。

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim qyt As QueryTable
        For Each qyt In Worksheets("中股").QueryTables
            qyt.Delete
        Next
        For Each qyt In Worksheets("港股").QueryTables
            qyt.Delete
        Next
    Set qyt = Nothing
End Sub




作者: captain    時間: 2011-10-25 13:31



QUOTE:
原帖由 mikeon88 於 2011-10-25 12:00 發表
From: alfidpan
Sent: Tuesday, October 25, 2011 11:22 AM

Dear   Michael

如何刪除外部連結 ?可以在巨集中?br /> 就要利用其他工具先將先前舊的命名範圍刪除,後來的命名範圍就會受到以下的巨集進行刪除動 ...

巴班真是高手雲集啊..
給各位高手拍拍手..有你們真好
作者: delphion    時間: 2011-10-25 13:47

在VBA最後加這個副程式,請參考:

Sub Delete_Connection()

    If ActiveWorkbook.Connections.Count > 0 Then
        For i = 1 To ActiveWorkbook.Connections.Count
            ActiveWorkbook.Connections.Item(1).Delete
        Next i
    End If

End Sub
作者: capricorn    時間: 2011-10-25 14:18

感謝alfidpan桑

四個盈再表經過alfidpan桑所提供的程式處理後,大小都不超過400K


作者: mikeon88    時間: 2011-10-25 14:29

感謝詹畯能桑提議,徐廣福桑撰寫刪除外部連結程式,
以加快執行速度並瘦身

美、日、中已寄給大家


From: alfipan
Sent: Tuesday, October 25, 2011 12:56 PM

Dear   Michael

改好了,台股沒有修改,因為先前就已經寫進去了
我還加入了以下的指令,在檔案開啟時,會到各盈再表第一個sheet的A2位置,
所以您修改後,如果沒有回到第一個sheet的位置存檔也沒有關係,
只要下一位開啟巨集時,就會回到第一個sheet。
經過這次減肥後,所有的檔案都沒有到1M了。


  '顯示A1在畫面左上方
  Sheets("XX").Select
  Dim myRng As Range
  Set myRng = Range("A1")
  Application.Goto Reference:=myRng, scroll:=True
  Set myRng = Nothing
  ActiveSheet.[a2].Select





作者: mikeon88    時間: 2011-10-27 11:52

From: SHIUANN MING CHEN
Sent: Thursday, October 27, 2011 10:57 AM

Dear Mike:  新的港股盈再表抓不到股價耶


Kevin


作者: mikeon88    時間: 2011-10-27 11:53

改好了
已寄給大家

感謝Kevin桑發現問題
作者: sunrise    時間: 2011-11-9 20:40

感謝Mike、感謝Kevin桑..^_^




歡迎光臨 巴菲特班 洪瑞泰 (Michael On) (http://mikeon88.freebbs.tw/) Powered by Discuz! 5.0.0