【问题标题】:Delete connection in Excel using VBA after web scraping网页抓取后使用 VBA 在 Excel 中删除连接
【发布时间】:2017-07-29 12:14:17
【问题描述】:

我有一个基于动态链接的网络抓取连接。因此,我无法设置固定连接。以下宏创建连接,然后更新工作表。

With ThisWorkbook.Worksheets("Data").QueryTables.Add(Connection:= _
        "<URL redacted>", Destination:=ThisWorkbook.Worksheets("Data").Range("$A$1"))
        .Name = "DataPull"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
        .Delete
End With

此宏每 1 分钟运行一次以更新数据。因此,这在每次运行时都会创建一个新连接。我不希望存在如此多的连接,因为它们将不再被使用。 网络抓取完成后如何删除连接? 或者有没有办法建立一个可以根据变量修改自身的连接。变量是根据当前时间变化的时间间隔。

我看过这个选项

For Each qr In ThisWorkbook.Queries
    qr.Delete
Next qr

但我不想删除另外两个固定连接。 创建的新连接具有名称 Connection、Connection1 等。有没有办法根据名称删除连接?

【问题讨论】:

标签: vba excel connection


【解决方案1】:

假设您要删除所有连接,除了 Connection1 和 Connection2,尝试...

Dim Conn As WorkbookConnection
For Each Conn In ThisWorkbook.Connections
    If Conn.Name <> "Connection1" And Conn.Name <> "Connection2" Then
        Conn.Delete
    End If
Next Conn

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 2017-11-04
    • 2020-12-05
    • 2019-07-30
    • 2017-05-10
    相关资源
    最近更新 更多