问题描述
我正在将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)所在的工作表模块中。