VBA - 将SQL查询结果分配给特定的

时间:2017-05-03 18:56:04

标签: sql-server excel vba excel-vba

我有大量数据(30,000多行)被提取到报告中。

该表格如下所示:

Report            Bucket         Category       SubCategory     Value
______            ______         ________      ___________      _____

NumberEmployees   Region1        FullTime        NULL          45  
NumberEmployees   Region1        PartTime        NULL          20
NumberEmployees   Region2        FullTime        NULL          60
NumberEmployees   Region2        PartTime        NULL          85
......
NumberEmployees   Region25       FullTime        NULL          29
NumberEmployees   Region25       PartTime        NULL          38

"报告&#34>中有几种不同的报告。柱。每个都有相同的25个桶。然后,Category和SubCategory特定于每个Report。值是我想要报告的结束号码(不需要对号码进行额外操作)。

我有一个VBA代码可以将数据导入Excel(但只是数据表) 但是,我需要将它们转换为格式精美的交叉表报告,如下所示:

    Number of Employees>
ByREGION  FullTime  PartTime 
Region1     45        20 
Region2     60        85 
....       ....     .... 
Region25    29        38 

我不想使用数据透视表,因为我需要以特定统一的方式为报告格式化这些数据。

我尝试使用SUMIFS来计算表中每个单元格的值,但文件太大了。

我是否可以编写VBA代码来制作交叉表???

  'Set and Excecute SQL Command'
     Set objMyCmd.ActiveConnection = objMyConn
        objMyCmd.CommandText = "select * from ComparisonData_All"
        objMyCmd.CommandType = adCmdText

    'Open Recordset'
        Set objMyRecordset.Source = objMyCmd
        objMyRecordset.Open

    'Copy Data to Excel'
        ActiveSheet.Range("A8").CopyFromRecordset objMyRecordset


Range("H:H").Select
   With Selection
        Selection.NumberFormat = "General"
        .Value = .Value
    End With

End Sub

0 个答案:

没有答案