繁体   English   中英

Excel VBA命名和更改Power Query的来源

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM