VBA根据单元格值自动执行功率查询

时间:2019-06-07 14:33:11

标签: excel vba powerquery

我主要在这方面有关于VBA的问题。 创建与SQL Server的查询连接时,我记录了一个宏。

在工作表(Sheet1)中,我列出了几个值,这些值告诉SQL Server的名称,数据库,表名和年份值(即2019年)。

它几乎可以正常工作,但是我在Source编码方面遇到了一些问题。见下文:

    Sub Macro1()
Dim sht As Worksheet
Set sht = Sheets("Sheet1")
Dim SQLSRV, DBase, YValue, Table As String

SQLSRV = sht.Range("B:B").Find("SQL Server").Offset(0, 1).Value
DBase = sht.Range("B:B").Find("Database").Offset(0, 1).Value
YValue = sht.Range("B:B").Find("Year").Offset(0, 1).Value
Table = sht.Range("B:B").Find("Acccount").Offset(0, 1).Value


    ActiveWorkbook.Queries.Add Name:="VAT Sales", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Source = Sql.Database(" & SQLSRV & ", " & DBase & ", [Query=""select [Posting Date]#(lf)" & _
        "" & "        ,[G_L Account No_]#(lf)        ,[Document No_]#(lf)        ,[Description]#(lf)        ,[Amount]#(lf)        ,[VAT Amount]#(lf)" & _
        "" & "        ,[Source Code]#(lf)        ,[VAT Bus_ Posting Group]#(lf)        ,[VAT Prod_ Posting Group]#(lf)        ,[Gen_ Posting Type]#(lf)" & _
        "" & "        ,[External Document No_]#(lf)        ,[Source No_]#(lf)        ,[User ID]#(lf)        ,[Unique Document No_]#(lf)        ,[Open Kvik]#(lf)" & _
        "" & "        ,[Remaining Amount Kvik]#(lf) from [" & DBase & "].[dbo].[" & Table & "$G_L Entry]#(lf)where [Posting Date] >= '01-01-" & YValue & "'""])" & _
        "" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    Source"
    End Sub

我的问题出现在“ Source = Sql.Database(“&SQLSRV&”,“&DBase&”,...的部分。 为了使Power Query能够正确读取此信息,我需要能够在变量的开头和结尾处插入引号,并且仍然能够传输变量的值。

是否存在某种我不知道的Chr()?

预先感谢您:)

1 个答案:

答案 0 :(得分:0)

后来我发现Chr(34)可以解决问题:)