Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1509|回复: 1

[已解决]老师,我这代码能不能再优化精简下·!?

[复制链接]
发表于 2012-10-22 13:56 | 显示全部楼层 |阅读模式
{:26:}

ttach]253449[/attach]
最佳答案
2012-10-22 15:29
本帖最后由 zjdh 于 2012-10-22 15:32 编辑

Private Sub CommandButton1_Click()
    Dim cn As New ADODB.Connection, sql$
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    cn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
    sql = "select 数据一,数据二,数据三,数据四,数据五,数据六,数据七,sum(数据八) from [原表$B4:I65536]" & _
          "GROUP BY 数据一,数据二,数据三,数据四,数据五,数据六,数据七"
    With Workbooks.Add
        With .Sheets(1)
            ActiveWindow.DisplayGridlines = False
            .Name = [A2]
            .Range("B4").Resize(1, 8) = Array("数据一", "数据二", "数据三", "数据四", "数据五", "数据六", "数据七", "数据八")
            .Range("B5").CopyFromRecordset cn.Execute(sql)
            .Range("B5").CurrentRegion.Borders.LineStyle = xlContinuous
            .Range("B5").CurrentRegion.Borders.ColorIndex = 12
        End With
    End With
    cn.Close
    Set cn = Nothing
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & Application.PathSeparator & [A2], FileFormat:=xlExcel8
End Sub
基础资料数据表.rar (14.48 KB, 下载次数: 1)

基础资料数据表.rar

15.17 KB, 下载次数: 9

发表于 2012-10-22 15:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2012-10-22 15:32 编辑

Private Sub CommandButton1_Click()
    Dim cn As New ADODB.Connection, sql$
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    cn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
    sql = "select 数据一,数据二,数据三,数据四,数据五,数据六,数据七,sum(数据八) from [原表$B4:I65536]" & _
          "GROUP BY 数据一,数据二,数据三,数据四,数据五,数据六,数据七"
    With Workbooks.Add
        With .Sheets(1)
            ActiveWindow.DisplayGridlines = False
            .Name = [A2]
            .Range("B4").Resize(1, 8) = Array("数据一", "数据二", "数据三", "数据四", "数据五", "数据六", "数据七", "数据八")
            .Range("B5").CopyFromRecordset cn.Execute(sql)
            .Range("B5").CurrentRegion.Borders.LineStyle = xlContinuous
            .Range("B5").CurrentRegion.Borders.ColorIndex = 12
        End With
    End With
    cn.Close
    Set cn = Nothing
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & Application.PathSeparator & [A2], FileFormat:=xlExcel8
End Sub
基础资料数据表.rar (14.48 KB, 下载次数: 1)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 06:32 , Processed in 0.910482 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表