標題: 盈再表- 刪除外部連結 [打印本頁]
作者:
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
原帖由 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 |