VBA自学应用(3)——文件拆分

平时我们工作中会遇到要将一个工作表的数据拆分成若干个工作簿的要求。我辈中人当然是一个个“复制粘贴”啦,那么该如何将类似下图的数据按照要求拆分成工作簿呢?
在这里插入图片描述
要求:

  • 1、数据只有2018年的数据,以下单时间为准;
  • 2、一个客户一个文件,以客户代码为准;
  • 3、要求保存为:客户代码-客户名称.xlsx。
    代码如下
Sub 拆分表格()
    '客户代码 9
    '客户名称 10
    Application.ScreenUpdating = False
    t = Timer
    Dim arr
    Dim d As Object, con As Object, rst As Object
    Dim sql As String, str_cnn As String, strpath As String
    Dim hebing As String, strs As String, lujing As String
    Dim i As Long, j As Integer
    '------选择保存路径----
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .InitialFileName = "D:\"
        .Title = "请选择保存路径"
        .Show
        If .SelectedItems.Count > 0 Then
            strs = .SelectedItems(1)
        End If
    End With
    Dim wb As Workbook
    Set con = CreateObject("adodb.connection")
    Set d = CreateObject("scripting.dictionary")
    '链接EXCEL表格
    strpath = ThisWorkbook.FullName
    If Application.Version < 12 Then
        str_cnn = "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=Yes;IMEX=';Data Source=" & strpath
    Else
        str_cnn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & strpath
    End If
    con.Open str_cnn '打开链接
    arr = Range("a1:m" & Cells(Rows.Count, 1).End(3).Row)
    '-------提取数据----
    For i = 3 To UBound(arr, 1)
        hebing = arr(i, 9) & arr(i, 10)
        '合并字段作为工作簿名称
        If Not d.exists(hebing) Then
            d(hebing) = ""
            sql = "select * from [Sheet1$a1:m] where 客户代码&客户名称" & "='" & hebing & "'"
            Set rst = con.Execute(sql)
            Set wb = Workbooks.Add
            For j = 0 To rst.Fields.Count - 1
                Cells(1, j + 1) = rst.Fields(j).Name
            Next
            wb.Worksheets(1).Range("a2").CopyFromRecordset rst
            Cells.EntireColumn.AutoFit
            lujing = strs & "\" & hebing & ".xlsx"
            wb.SaveAs lujing
            wb.Close
        End If
    Next
    MsgBox "拆分成功!耗时:" & Format(Timer - t, "00:00:00")
    Application.ScreenUpdating = False
End Sub
   

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
"Excel VBA开发自学宝典第3版"是一本关于学习Excel VBA开发的教材。配套文件指的是教材中所提及的相关代码文件、实例文件以及其他辅助学习的资源文件。 配套文件对学习者来说非常重要,因为它们能够帮助我们更好地理解书中的概念和知识点,并且通过实践来加深学习的效果。 这本教材的配套文件包括以下几部分内容: 1. 代码文件:教材中所示范的VBA代码。学习者可以通过运行这些代码来实际操作和观察代码的执行效果,加深对VBA编程的理解。 2. 实例文件:教材中提供的一些实际案例文件,包含了一些具体的应用场景和问题解决方法。学习者可以通过打开这些文件来实际操作和观察文件中的数据和功能,从而更好地理解VBA应用。 3. 辅助资源文件:教材中的配套文件还包括一些辅助资源文件,如图表、模板等。学习者可以通过这些资源文件来进行实际操作和观察,更好地掌握VBA开发的技巧和实践。 这些配套文件的使用方法也在教材中有详细说明,学习者可以按照教材中的指导,将这些文件下载到自己的电脑上,并按照需要进行操作和实践。 需要注意的是,配套文件只是教材中的辅助学习资源,学习者在学习的过程中还应该注重理解教材中的概念和知识点,并通过自己的实践来巩固和运用所学的内容。配套文件是一个方便的工具,但并不是学习的全部,学习者还需要进行反复的练习和实践,才能真正掌握和应用Excel VBA开发的技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

star星梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值