`
阅: 357 | 回: 3
发表于2024/9/23 15:47:08 楼主 
头像 等级:学有小成
积分:21
财富值:2.0
身份:普通用户

删除工作簿所有pq查询链接:

Sub 删除查询()
Dim q
For Each q In ActiveWorkbook.Queries
q.Delete
Next
End Sub

遍历文件夹里所有工作簿的pq查询链接并删除

Sub 删除文件夹中所有工作簿的查询()
    Dim 文件夹路径 As String
    Dim 文件名 As String
    Dim 工作簿 As Workbook
    Dim 查询 As Object
    Dim 连接 As WorkbookConnection
    
    Application.ScreenUpdating = False
    Application.DisplayStatusBar = False

    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "请选择包含Excel文件的文件夹"
        If .Show = -1 Then
            文件夹路径 = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With

    文件名 = Dir(文件夹路径 & "\*.xls*")

    Do While 文件名 <> ""
        Set 工作簿 = Workbooks.Open(文件夹路径 & "\" & 文件名, ReadOnly:=False)

        On Error Resume Next
        For Each 查询 In 工作簿.Queries
            查询.Delete
        Next 查询
        On Error GoTo 0

        For Each 连接 In 工作簿.Connections
            连接.Delete
        Next 连接

        工作簿.Close SaveChanges:=True

        文件名 = Dir
    Loop

    Application.ScreenUpdating = True
    Application.DisplayStatusBar = True

    MsgBox "文件夹中的所有Power Query查询已删除", vbInformation
End Sub

已写入删除pq的宏代码,亲测可用

你是最棒的
发表于 2024/9/23 16:16:11   
头像 等级:传说级人物
积分:2532
财富值:6
身份:系统管理员
可以考虑,收到你的建议
方方格子安装教程http://www.ffcell.com/WenKu/article.aspx?id=376
发表于 2024/9/24 8:40:34   
头像 等级:学有小成
积分:21
财富值:2
身份:普通用户
Sub 删除文件夹中所有工作簿的查询()
    Dim 文件夹路径 As String
    Dim 文件名 As String
    Dim 工作簿 As Workbook
    Dim 查询 As Object
    Dim 连接 As WorkbookConnection
    Dim 文件计数 As Integer, 总文件数 As Integer
    
    Application.ScreenUpdating = False
    Application.DisplayStatusBar = True
    
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "请选择包含Excel文件的文件夹"
        If .Show = -1 Then
            文件夹路径 = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    
    文件名 = Dir(文件夹路径 & "\*.xls*")
    总文件数 = 0
    Do While 文件名 <> ""
        总文件数 = 总文件数 + 1
        文件名 = Dir
    Loop
    
    文件名 = Dir(文件夹路径 & "\*.xls*")
    文件计数 = 0
    Do While 文件名 <> ""
        文件计数 = 文件计数 + 1
        Application.StatusBar = "处理文件 " & 文件计数 & " / " & 总文件数
        
        Set 工作簿 = Workbooks.Open(文件夹路径 & "\" & 文件名, ReadOnly:=False)
        
        On Error Resume Next
        For Each 查询 In 工作簿.Queries
            查询.Delete
        Next 查询
        For Each 连接 In 工作簿.Connections
            连接.Delete
        Next 连接
        On Error GoTo 0
        
        工作簿.Close SaveChanges:=True
        
        文件名 = Dir
    Loop
    
    Application.ScreenUpdating = True
    Application.DisplayStatusBar = False
    
    MsgBox "文件夹中的所有Power Query查询已删除", vbInformation
End Sub
你是最棒的
发表于 2024/10/29 15:26:10   
头像 等级:学有小成
积分:21
财富值:2
身份:普通用户
麻烦把这个帖子删除
你是最棒的

快速回复

目前不允许游客发表,请 登录 注册 后再发贴。