我正在尝试使用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”,而不是删除它并阅读它,我只想更改源代码。这可能吗?
答案 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”通常会引发语法错误。为此,您将需要一个简单的错误处理程序。