|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 opiona 于 2019-11-11 11:33 编辑
- Set SH2 = Worksheets("报表")
-
- StrSQL = "TRANSFORM SUM(销量)"
- StrSQL = StrSQL & " SELECT 货号,品类,首卖日期,SUM(销量) AS 周销量"
- StrSQL = StrSQL & ",NULL AS 图片"
- StrSQL = StrSQL & " FROM ("
-
- StrSQL = StrSQL & " SELECT 货号,品类,首卖日期,日期,SUM(销量) AS 销量"
- StrSQL = StrSQL & " FROM [数据$]"
- StrSQL = StrSQL & " WHERE NOT 日期 IS NULL" '//去掉了<>
- StrSQL = StrSQL & " GROUP BY 货号,品类,首卖日期,日期"
-
- StrSQL = StrSQL & ") WHERE 销量>0" '//合计后,去掉销量=0的,其实可以直接:只要销售>0的
- StrSQL = StrSQL & " GROUP BY 货号,品类,首卖日期"
- StrSQL = StrSQL & " PIVOT 日期 "
-
- Str_coon = "HDR=yes';Data Source =" & ThisWorkbook.FullName '//OFFICE2003,2007 通用
- SQLARR = GET_SQL_To_Arr(StrSQL, Str_coon, True)
-
- SH2.Range("A1:Z65536").ClearContents
- SH2.Range("A1").Resize(UBound(SQLARR, 1) + 1, UBound(SQLARR, 2) + 1) = SQLARR
-
- Rem 重新排序
- StrSQL = ""
- StrSQL = StrSQL & " SELECT * FROM [" & SH2.Name & "$]"
- StrSQL = StrSQL & " ORDER BY 周销量 DESC"
-
- SQLARR = GET_SQL_To_Arr(StrSQL, Str_coon, True)
-
- SH2.Range("A1:Z65536").ClearContents
- SH2.Range("A1").Resize(UBound(SQLARR, 1) + 1, UBound(SQLARR, 2) + 1) = SQLARR
复制代码 |
|