然后Excel宏刷新数据格式细胞

问题描述 投票:1回答:1

我有一个包含一个透视表工作表,该数据是从由另一个系统中的输出文件填充。

在电源查询我转换数据,特别是我使用的字段来构建一个URL的一个。

"'=HYPERLINK(""" & "https://website.com/"&[Code] & """, """ & [Code] & """) "

当数据透视表,我需要处理的格式,以使其正常显示。

在Excel中我使用了一个查找和替换字符串转换成显示友好名称正确的URL(和我调整列)。

Sub Macro1()
    Cells.Replace What:="'=", Replacement:="=", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Columns("A:A").EntireColumn.AutoFit
End Sub

刷新数据意味着,上述需要宏观重新运行。

我热衷于为用户自动执行此。但是,在运行下面的宏看起来先做格式化然后刷新,我究竟做错了什么?

Sub Macro2()
    ActiveWorkbook.Connections("Query - XXX"). _
        Refresh
'
    Cells.Replace What:="'=", Replacement:="=", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Columns("A:A").EntireColumn.AutoFit
End Sub

注:宏工作的两个部分正确地独立,只是没有如上结合时。

excel vba formatting powerquery
1个回答
1
投票

如果您在数据功能区中的“连接”部分找到查询,打开它的属性,并取消选中“后台刷新”选项,直到它完成令人耳目一新,将暂停所有VBA代码。这个属性也可以在VBA设置。

Sub Macro2()

    ActiveWorkbook.Connections("Query - XXX").OLEDBConnection.BackgroundQuery = False
    ActiveWorkbook.Connections("Query - XXX").Refresh

    Cells.Replace What:="'=", Replacement:="=", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Columns("A:A").EntireColumn.AutoFit
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.