標題: 盈再表- 刪除外部連結
capricorn
同學




UID 870
精華 0
積分 0
帖子 8
閱讀權限 99
註冊 2011-10-11
用戶註冊天數 4590
用戶失蹤天數 4537

114.33.145.54
分享 
發表於 2011-10-24 16:46  資料 私人訊息 
盈再表- 刪除外部連結
Mike 各位同學大家好

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

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

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

如外部連結不須保存,可以在程式執行完後刪除
一方面可以加快程式執行,另一方面檔案大小也可以進一步縮小
頂部
mikeon88
管理員
Rank: 9Rank: 9Rank: 9


UID 1
精華 0
積分 0
帖子 15453
閱讀權限 255
註冊 2007-1-14
用戶註冊天數 6322
用戶失蹤天數 8

111.243.38.73
發表於 2011-10-24 18:49  資料 主頁 文集 私人訊息 
請問如何刪除外部連結 ?
頂部
capricorn
同學




UID 870
精華 0
積分 0
帖子 8
閱讀權限 99
註冊 2011-10-11
用戶註冊天數 4590
用戶失蹤天數 4537

114.47.13.181
發表於 2011-10-24 23:34  資料 私人訊息 
我是有在每個會產生外部連結的程式後加上

ActiveWorkbook.Connections("連線").Delete

希望有幫助
頂部
mikeon88
管理員
Rank: 9Rank: 9Rank: 9


UID 1
精華 0
積分 0
帖子 15453
閱讀權限 255
註冊 2007-1-14
用戶註冊天數 6322
用戶失蹤天數 8

111.243.27.208
發表於 2011-10-25 09:37  資料 主頁 文集 私人訊息 
這樣抓不到資料
頂部
capricorn
同學




UID 870
精華 0
積分 0
帖子 8
閱讀權限 99
註冊 2011-10-11
用戶註冊天數 4590
用戶失蹤天數 4537

114.33.145.54
發表於 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
管理員
Rank: 9Rank: 9Rank: 9


UID 1
精華 0
積分 0
帖子 15453
閱讀權限 255
註冊 2007-1-14
用戶註冊天數 6322
用戶失蹤天數 8

111.243.27.208
發表於 2011-10-25 10:52  資料 主頁 文集 私人訊息 
問題是,盈再表連續抓了好幾個表
每一個表後都要加上這一行程式嗎 ?
頂部
mikeon88
管理員
Rank: 9Rank: 9Rank: 9


UID 1
精華 0
積分 0
帖子 15453
閱讀權限 255
註冊 2007-1-14
用戶註冊天數 6322
用戶失蹤天數 8

111.243.27.208
發表於 2011-10-25 11:00  資料 主頁 文集 私人訊息 
每一個表後都要加上這一行程式
一樣抓不到資料
頂部
capricorn
同學




UID 870
精華 0
積分 0
帖子 8
閱讀權限 99
註冊 2011-10-11
用戶註冊天數 4590
用戶失蹤天數 4537

114.33.145.54
發表於 2011-10-25 11:24  資料 私人訊息 
我在猜有可能是我寫程式的方式跟mike的盈再表有所不同
我的方式是每次執行時都會到各個外部連結下載資料
再貼到我所指定的位置
所以我不用保留外部資料在excel中

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

所以把connection刪除後,反而抓不到資料了
頂部
mikeon88
管理員
Rank: 9Rank: 9Rank: 9


UID 1
精華 0
積分 0
帖子 15453
閱讀權限 255
註冊 2007-1-14
用戶註冊天數 6322
用戶失蹤天數 8

111.243.27.208
發表於 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
同學




UID 688
精華 0
積分 0
帖子 135
閱讀權限 99
註冊 2011-8-16
用戶註冊天數 4646
用戶失蹤天數 2110
來自 台南

1.200.170.90
發表於 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
同學




UID 652
精華 0
積分 0
帖子 5
閱讀權限 99
註冊 2011-8-9
用戶註冊天數 4653
用戶失蹤天數 1275

203.160.153.142
發表於 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
同學




UID 870
精華 0
積分 0
帖子 8
閱讀權限 99
註冊 2011-10-11
用戶註冊天數 4590
用戶失蹤天數 4537

114.33.145.54
發表於 2011-10-25 14:18  資料 私人訊息 
感謝alfidpan桑

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

頂部
mikeon88
管理員
Rank: 9Rank: 9Rank: 9


UID 1
精華 0
積分 0
帖子 15453
閱讀權限 255
註冊 2007-1-14
用戶註冊天數 6322
用戶失蹤天數 8

111.243.27.208
發表於 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
管理員
Rank: 9Rank: 9Rank: 9


UID 1
精華 0
積分 0
帖子 15453
閱讀權限 255
註冊 2007-1-14
用戶註冊天數 6322
用戶失蹤天數 8

111.243.25.253
發表於 2011-10-27 11:52  資料 主頁 文集 私人訊息 
From: SHIUANN MING CHEN
Sent: Thursday, October 27, 2011 10:57 AM

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


Kevin

頂部
mikeon88
管理員
Rank: 9Rank: 9Rank: 9


UID 1
精華 0
積分 0
帖子 15453
閱讀權限 255
註冊 2007-1-14
用戶註冊天數 6322
用戶失蹤天數 8

111.243.25.253
發表於 2011-10-27 11:53  資料 主頁 文集 私人訊息 
改好了
已寄給大家

感謝Kevin桑發現問題
頂部