我有一个包含一个透视表工作表,该数据是从由另一个系统中的输出文件填充。
在电源查询我转换数据,特别是我使用的字段来构建一个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
注:宏工作的两个部分正确地独立,只是没有如上结合时。
如果您在数据功能区中的“连接”部分找到查询,打开它的属性,并取消选中“后台刷新”选项,直到它完成令人耳目一新,将暂停所有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