Excel VBA 为文本框的电源查询设置变量

Excel VBA setting variable for power query from textbox

我想打开 excel 并弹出一个文本框。用户在文本框中输入的任何字符串都将是加载到工作表中的 Power Query 数据中使用的变量。

我目前有这个 M 代码:

let
Source = Sql.Databases("BMCCL006.DS.BUILDWITHBMC.COM\DW", [HierarchicalNavigation=true]),
trendsql = Source{[Name="trendsql"]}[Data],
dbo = trendsql{[Schema="dbo"]}[Data],
poeh1 = dbo{[Name="poeh"]}[Data],
#"Removed Other Columns" = Table.SelectColumns(poeh1,{"pono", "posuf", "stagecd", "shiptonm", "enterdt", "whse", "vendno", "takenby"}),
#"Filtered Rows" = Table.SelectRows(#"Removed Other Columns", each [stagecd] < 3),
#"Filtered Rows1" = Table.SelectRows(#"Filtered Rows", each [takenby] = "mytextboxstring"),
#"Changed Type" = Table.TransformColumnTypes(#"Filtered Rows1",{{"enterdt", type date}}),
#"Filtered Rows2" = Table.SelectRows(#"Changed Type", each true),
#"Sorted Rows" = Table.Sort(#"Filtered Rows2",{{"enterdt", Order.Descending}})
in
#"Sorted Rows"

我想使用文本框(“mytextboxstrig”)作为在 [takenby] 中筛选行的值。

这可以通过 VBA 完成,以便此查询运行并加载到工作表(“Sheet1”)吗?

谢谢。

1 创建范围名称,这里aaa

2 使用 VBA 填充它

Private Sub Workbook_Open()
Range("aaa").Value = _
InputBox(Prompt:="Type the value you want")
End Sub

3 引用 powerquery 中的命名范围

NameValue= Excel.CurrentWorkbook(){[Name="aaa"]}[Content]{0}[Column1],
#"Filtered Rows" = Table.SelectRows(#"YourPriorStepName", each ([takenby] = NameValue))