我有大量数据(30,000多行)被拉入报表。VBA - 将SQL查询结果分配给特定的
表看起来像这样:
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
有在“报告”列若干不同的报告。每个都有相同的25个桶。然后,类别和子类别针对每个报告。值是我想要报告的最终号码(不需要额外的操作来编号)。
我有一个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
当然是有代码,可以为你做这个。当我有自定义需求时,我经常在VBA中编写自己的“pivot”和“unpivot”功能。 – Kyle
*我不想使用数据透视表,因为我需要以特定的统一方式为报告格式化这些数据。* - 1)您是否知道可以操作数据透视表格式? 2)即使这不起作用,你可以通过数据透视表构建结构,然后在另一个表格上放置格式并使用简单公式或GETPIVOTDATA链接到数据透视表中的数据(所以数据透视表就像是格式化报表数据的分段)。 –