使用Excel用户表单启动以特定数据作为参数的查询

qlzsbp2j  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(116)

如何将一些用户表单数据发送到查询而不将它们打印在工作表中?
我当前的用户表单使用列表框和文本框询问一些[日期/名称/文件路径]。根据用户的选择,一些查询可以启动或不启动。显然,这些查询使用的是用户表单中设置的数据。
我不想使用用户表单打印Excel中的数据,然后启动一些查询,从这些最后的数据中获取参数。
这可能吗?

r3i60tvu

r3i60tvu1#

你可以写一个子函数,它接受你的参数并为你重写一个查询。下面是一个例子来说明我的意思。

Sub ModifyPowerQuery(filePath As String)
  Dim wb As Workbook
  Set wb = ThisWorkbook
  
  Dim qry As QueryTable
  Set qry = wb.Queries("My Query") ' Modify the existing "My Query" power query
  
  ' Set the new command text for the query
  qry.CommandText = "SELECT * FROM """ & filePath & """"
  
  Dim ws As Worksheet
  Set ws = wb.Worksheets("Sheet1")
  
  Dim qt As QueryTable
  Set qt = ws.QueryTables("My Query") ' Modify the existing query table on the worksheet
  
  qt.Refresh ' Refresh the query to load the data from the new file
End Sub

相关问题