• 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


    用了将近一天的时间搜寻资料,至此终于运行成功了. 因为我在搜索资料的时候,没有见网上处理过此类型的例子.记录下来供后来者参考.大家记住红色部分是关键就可以了.

  • 相关阅读:
    [golang]golang signal.Notify 信号,如何优雅的退出
    解密
    [财务][数据化分析][帆软]报表设计-数据分析(op=view)
    [财务][数据化分析][帆软]报表设计-填报预览
    [财务][数据化分析][帆软]如何量化你的用户价值?RFM模型综合实战
    [数据分析][RFM模型]用数据分析用户
    [帆软][内网穿透][LanProxy]蛋疼的网络架构探讨
    [财务][数据化分析][帆软]报表设计-分页预览
    [财务][数据化分析][帆软]报表设计-模板预览
    [财务][数据化分析][帆软]报表设计-聚合报表设计
  • 原文地址:https://www.cnblogs.com/kittywei/p/vbs.html
Copyright © 2020-2023  润新知