Excel 将数据导入透视表表单-ME关键字的使用无效
我得到了错误 “编译错误使用ME关键字无效” 有关下面的Excel VBA代码。通过谷歌搜索我知道原因是你不能在模块中使用“我”,但是,我还没有找到任何关于如何解决它以便它可以在模块中工作的方法 我所做的是使用VBA和SQL代码并点击SQL数据库,以数据透视表的形式返回一些信息。但我只是不知道如何解决我的问题Excel 将数据导入透视表表单-ME关键字的使用无效,excel,vba,Excel,Vba,我得到了错误 “编译错误使用ME关键字无效” 有关下面的Excel VBA代码。通过谷歌搜索我知道原因是你不能在模块中使用“我”,但是,我还没有找到任何关于如何解决它以便它可以在模块中工作的方法 我所做的是使用VBA和SQL代码并点击SQL数据库,以数据透视表的形式返回一些信息。但我只是不知道如何解决我的问题 Sub RefreshData() Dim SQl As String Dim startdate As String, Enddate As String Dim
Sub RefreshData()
Dim SQl As String
Dim startdate As String, Enddate As String
Dim pvt As PivotTable
Set pvt = **Me.**PivotTables("PivotTable5")
pvt.PivotCache.Connection = "ODBC;DSN=" & Application.Range("DSN_Source") & ";DATABASE=" & Application.Range("TD_DB") & ";"
startdate = Format(**Me**.Range("PSdate"), "yyyy-mm-dd hh:mm:ss")
Enddate = Format(**Me**.Range("PEdate"), "yyyy-mm-dd hh:mm:ss")
SQl = ""
SQl = "WITH PanDetail As " & vbCrLf
SQl = SQl & "( " & vbCrLf
SQl = SQl & " SELECT ID, name, SCODE, SDATETime, PDESCRIPTION, ROUND(VOLUME, 5) As VOLUME" & vbCrLf
SQl = SQl & ", ROUND(MASS, 0) As MASS " & vbCrLf
数据透视表
是工作表
的成员。您必须告诉VBA要使用哪张图纸
下面的代码将使用包含代码的工作簿的“Sheet1”。注意数据透视表
和范围
前面的
——这告诉VBA使用With
-语句的对象成员
With ThisWorkbook.Worksheets("Sheet1")
Set pvt = .PivotTables("PivotTable5")
startdate Format(.Range("PSdate"), "yyyy-mm-dd hh:mm:ss")
Enddate = Format(.Range("PEdate"), "yyyy-mm-dd hh:mm:ss")
(...)
End With
替代方案可能是
Dim ws as Worksheet
set ws = ThisWorkbook.Sheets("Sheet1")
Set pvt = ws.PivotTables("PivotTable5")
startdate = Format(ws.Range("PSdate"), "yyyy-mm-dd hh:mm:ss")
或者(只是为了理解,混乱且难以改变)
你可能会从阅读中受益
Set pvt = ThisWorkbook.Sheets("Sheet1").PivotTables("PivotTable5")
startdate = Format(ThisWorkbook.Sheets("Sheet1").Range("PSdate"), "yyyy-mm-dd hh:mm:ss")