VBS 處理斷開excel數據鏈接格式,只保留值


    最近有個項目是將一個excel壓縮之后發給客戶,但是由於excel數據過大,即使壓縮之后仍然接近5M,因為是大批量發送數據,所以非常慢.急需要將EXCEL數據壓縮. 后來我想到一個辦法,就excel數據公式去掉,只保留數值,發現文件小好多. excel 操作去掉數據鏈接如圖所示.

然后我在網上搜索了好多方法,但是沒有去掉 這個鏈接的做法, 后來先用excel 錄制宏的方法, 最后找到用BreakLink方法來處理. 然后又搜索到VBA的此方法詳解. 如下

將鏈接到其他 Microsoft Excel 源或 OLE 源的公式轉換為值。

expression.BreakLink(Name, Type)

expression      必需。該表達式返回“應用於”列表中的對象之一。

PictureFile      String 類型,必需。鏈接的名稱。

Type      XILinkType 類型,必需。鏈接的類型。

VBA 的方法如下:

Sub DealBreakLink()
    Dim astrLinks As Variant
    ' Define variable as an Excel link type.
    astrLinks = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
    ' Break the first link in the active workbook.
    ActiveWorkbook.BreakLink _
        Name:=astrLinks(1), _
        Type:=xlLinkTypeExcelLinks
End Sub

下一步就是轉換成VBS的寫法. 經過苦苦搜尋,終於找到了VBS 有類似的方法 BreakLink(Name,Type)

問題來了,這個type我該輸入什么呢? 然后又經過苦苦搜尋(發現現在很難找到比較全面的參考手冊)終於找到Type該輸入的類型了.................

XlLinkType

Constant Value

xlLinkTypeExcelLinks  1

xlLinkTypeOLELinks  2


objExcel.Workbooks.Open strSearchPath
Set objWorkbook = objExcel.ActiveWorkbook


ForEach LinkSourceIn objWorkbook.LinkSources
objWorkbook.BreakLink LinkSource,1 '此處 LinkSourses 為鏈接到外部excel的地址; 1即為要處理斷開鏈接的類型 即為EXCEL 數據源

Next


用了將近一天的時間搜尋資料,至此終於運行成功了. 因為我在搜索資料的時候,沒有見網上處理過此類型的例子.記錄下來供后來者參考.大家記住紅色部分是關鍵就可以了.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM