Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将数据导入透视表表单-ME关键字的使用无效_Excel_Vba - Fatal编程技术网

Excel 将数据导入透视表表单-ME关键字的使用无效

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

我得到了错误

“编译错误使用ME关键字无效”

有关下面的Excel VBA代码。通过谷歌搜索我知道原因是你不能在模块中使用“我”,但是,我还没有找到任何关于如何解决它以便它可以在模块中工作的方法

我所做的是使用VBA和SQL代码并点击SQL数据库,以数据透视表的形式返回一些信息。但我只是不知道如何解决我的问题

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")