当特定单元格发生更改时我正在使用VBA自动刷新Excel Power Query

问题描述

我正在将Access数据库导入Excel工作簿中。我想根据Excel工作表中单元格的值过滤要自动导入的表。我已经能够通过Power Query代码做到这一点。

下一步是每次单元格值更改时更新要导入的表。我可以使用VBA中的以下代码每次在整个工作表(关键单元格所在的地方)中的任何单元格每次更改时更新查询

Private Sub Worksheet_Change(ByVal Target As Range)

    ThisWorkbook.RefreshAll

End Sub

我想编辑该VBA代码,以便Power查询仅在我用来过滤表格的特定单元格发生更改时更新,而不在工作表中的任何单元格发生更改时进行更新。>

感谢任何提示

解决方法

未经测试。像这样:

Private Sub Worksheet_Change(ByVal Target As Range)

if not intersect(cell_to_check,Target) is nothing then
    Application.EnableEvents = False
    ThisWorkbook.RefreshAll
end if

Application.EnableEvents = True

End Sub
,

我最终使用了以下代码,该代码仅刷新我想要的查询,而不刷新工作簿中的所有查询:

Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = Me.Range("[Cell Reference]").Address _
Then

    ActiveWorkbook.Connections("Query - [Name of the query]").Refresh

End If

End Sub

在我的情况下,[单元格引用]是B5,[查询名称]是BS。 该代码必须添加到单元格或范围(在我的情况下为B5)所在的工作表模块中。