如何使用VBA编辑电源查询的来源?

时间:2016-10-18 22:33:43

标签: excel vba excel-vba powerquery

我正在尝试使用VBA编辑其中一个查询的来源。这就是我到目前为止所做的:

 Dim mFormula As String

 mFormula = _

 "let Source = Excel.Workbook(File.Contents(wbname), null, true) in Source"

 query1 = ActiveWorkbook.Queries.Add("LATEST", mFormula)

我之前在我的代码中设置了wbname。已经添加了“LATEST”,而不是删除它并阅读它,我只想更改源代码。这可能吗?

4 个答案:

答案 0 :(得分:2)

您可以使用$("a[href*='oldTerm']") .each(function() { this.href = this.href.replace(/oldTerm/g, "newTerm"); }); 来获取所需的查询,并使用ActiveWorkbook.Queries.Item属性更新查询的公式,如下所示:

Formula

注意:这仅适用于Excel 2016或更高版本。

答案 1 :(得分:0)

我相信你,最好避免使用这些方法,因为它们会导致兼容性问题以及其他问题。

如果你学习了M,你可能不需要用VBA编辑代码。

答案 2 :(得分:0)

聚会晚了一点,但除此之外,对于任何认为这种进步的人都可以使用:

Thisworkbook.Queries("LATEST").Formula = mFormula

请注意,ThisWorkbook胜过ActiveWorkbook

答案 3 :(得分:0)

不建议使用Thisworkbook.Queries(index).Formula =“ newFormula”来更改您的查询,但是我还没有发现任何其他更新连接的方法。

使用此方法的缺点是您不能更改连接的任何特定属性(源等),但是可以使用Split,Replace,Instr,Mid等功能来获取所需的确切信息。 / p>

另一个缺点是,新的“ .formula”通常会引发语法错误。为此,您将需要一个简单的错误处理程序。