[英]Excel VBA naming and changing source of Power Query
我有一个包含2个查询的工作表,用于查询我用作模板的2个不同的网页。 我需要使用相同的2个查询使用不同的来源和名称来创建更多工作表(以便更轻松地建立索引)。
但是我不知道如何更改查询参数。 到目前为止,我还有其他事情要做。
我使用了记录宏,通过手动复制模板页面并更改值来进行记录,但是宏甚至无法正确设置值。 它使用以下查询
ActiveSheet.ListObjects("queryname").Name = "newname"
这根本不起作用。我也环顾四周,发现成功的人。
.Listobjects("queryname").QueryTables.Name = "newname"
QueryTables.("queryname").Name = "newname"
这是我到目前为止的宏。 它所做的就是从所选单元格中复制当前文本,并在复制模板工作表后使用它命名所有内容。
Excel在运行此代码时不会引发任何错误。 它运行整个代码,但不更改表的名称。
Sub Setup()
Dim item As String
Dim bName As String
Dim sName As String
Dim TbName As String
Dim TsName As String
item = Selection.Value
Sheets("Query Template").Copy Before:=Sheets(6)
Sheets("Query Template (2)").Select
Sheets("Query Template (2)").Name = item
sName = "S_" & Replace(item, " ", "_")
bName = "B_" & Replace(item, " ", "_")
TbName = "BTemplate (2)"
TsName = "STemplate (2)"
'this is where I try to change the query names.
With ActiveWorkbook.Connections("Query - " & TbName)
.Name = "Query - " & bName
End With
With ActiveWorkbook.Connections("Query - " & TsName)
.Name = "Query - " & sName
End With
Sheets(item).Range("A2:D2").Select
ActiveWorkbook.Names.Add Name:="BLink" & Replace(item, " ", "_"),
RefersToR1C1:="='" & item & "'!R2C1"
Sheets(item).Range("F2:I2").Select
ActiveWorkbook.Names.Add Name:="SLink" & Replace(item, " ", "_"),
RefersToR1C1:="='" & item & "'!R2C6"
End Sub
任何帮助,将不胜感激。 我需要的就是能够更改查询的源和名称。
https://gallery.technet.microsoft.com/office/VBA-to-automate-Power-956a52d1
感谢Chillin找到此链接。
使用该链接中的一些代码,我设法仅从模板查询中复制了M代码以创建新查询并将其放在工作表上。 但是,由于现在我有很多查询,使得工作表占用了大量内存(10G RAM),因此我必须将其工作,因此我可能不得不将每对查询拆分成自己的工作簿,并按顺序更新/保存每个查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.