VBS 處理斷開excel資料鏈結格式,只保留值

2021-06-27 00:11:36 字數 1699 閱讀 4635

最近有個專案是將乙個excel壓縮之後發給客戶,但是由於excel資料過大,即使壓縮之後仍然接近5m,因為是大批量傳送資料,所以非常慢.急需要將excel資料壓縮. 後來我想到乙個辦法,就excel資料公式去掉,只保留數值,發現檔案小好多. excel 操作去掉資料鏈結如圖所示.

然後我在網上搜尋了好多方法,但是沒有去掉 這個鏈結的做法, 後來先用excel 錄製巨集的方法, 最後找到用breaklink方法來處理. 然後又搜尋到vba的此方法詳解. 如下

將鏈結到其他 microsoft excel 源或 ole 源的公式轉換為值。

expression.breaklink(name, type)

expression      必需。該表示式返回「應用於」列表中的物件之一。

picturefile      string 型別,必需。鏈結的名稱。

type      xilinktype 型別,必需。鏈結的型別。

xllinktype 可為以下 xllinktype 常量之一。

xllinktypeexcellinks 對 microsoft excel 源的鏈結。

xllinktypeolelinks 對 ole 源的鏈結。

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

setobjworkbook

= objexcel.activeworkbook

foreach

linksource

inobjworkbook.linksources

objworkbook.breaklink

linksource,

1 '此處 linksourses 為鏈結到外部excel的位址; 1即為要處理斷開鏈結的型別 即為excel 資料來源

next

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

VBS 處理斷開excel資料鏈結格式,只保留值

最近有個專案是將乙個excel壓縮之後發給客戶,但是由於excel資料過大,即使壓縮之後仍然接近5m,因為是大批量傳送資料,所以非常慢.急需要將excel資料壓縮.後來我想到乙個辦法,就excel資料公式去掉,只保留數值,發現檔案小好多.excel 操作去掉資料鏈結如圖所示.然後我在網上搜尋了好多方...

資料鏈的建立和資料鏈的輸出

本次程式主要實現資料鏈的儲存和輸出,並把輸出的數值寫在乙個檔案中 本程式的主要 是在定義 lnode p l next 定義乙個結點指標p指向頭結點的下乙個結點 還有資料鏈建立之後,資料鏈上得指標不能返回,只有利用創立的方法中呼叫修改資料鏈的方法 再寫方法 方法中套方法 include includ...

資料鏈路協議

鏈路就是一條無源的從點到點的物理線路段,中間沒有任何其他的交換節點。在進行通訊時,兩台計算機的通訊通路是由多條鏈路串接而成的。當需要在一條鏈路上通訊時,除了需要物理鏈路,還需要一些規程來控制這些資料的傳輸,把實現這些規程的硬體和軟體加到鏈路上,就構成了資料鏈路 差錯控制自動請求重發又可以稱為後向糾錯...