送心意

成蹊老师

职称注册会计师,初级会计师,税务师,中级会计师

2019-12-04 21:37

点击【开发工具】-【Visual Basic】或者Alt+F11的快捷键进入VBE编辑界面。
插入一个新的模块
粘贴下列代码在模块中:

Sub CFGZB()

    Dim myRange As Variant

    Dim myArray

    Dim titleRange As Range

    Dim title As String

    Dim columnNum As Integer

    myRange = Application.InputBox(prompt:=请选择标题行:, Type:=8)

    myArray = WorksheetFunction.Transpose(myRange)

    Set titleRange = Application.InputBox(prompt:=请选择拆分的表头,必须是第一行,且为一个单元格,如:“姓名”, Type:=8)

    title = titleRange.Value

    columnNum = titleRange.Column

    Application.ScreenUpdating = False

    Application.DisplayAlerts = False

    Dim i&, Myr&, Arr, num&

    Dim d, k

    For i = Sheets.Count To 1 Step -1

        If Sheets(i).Name <> 数据源 Then

            Sheets(i).Delete

        End If

    Next i

    Set d = CreateObject(Scripting.Dictionary)

    Myr = Worksheets(数据源).UsedRange.Rows.Count

    Arr = Worksheets(数据源).Range(Cells(2, columnNum), Cells(Myr, columnNum))

    For i = 1 To UBound(Arr)

        d(Arr(i, 1)) = 

    Next

    k = d.keys

    For i = 0 To UBound(k)

        Set conn = CreateObject(adodb.connection)

        conn.Open provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source= & ThisWorkbook.FullName

        Sql = select * from [数据源$] where  & title &  =  & k(i) & 

        Worksheets.Add after:=Sheets(Sheets.Count)

        With ActiveSheet

            .Name = k(i)

            For num = 1 To UBound(myArray)

                .Cells(1, num) = myArray(num, 1)

            Next num

            .Range(A2).CopyFromRecordset conn.Execute(Sql)

        End With

        Sheets(1).Select

        Sheets(1).Cells.Select

        Selection.Copy

        Worksheets(Sheets.Count).Activate

        ActiveSheet.Cells.Select

        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _

                               SkipBlanks:=False, Transpose:=False

        Application.CutCopyMode = False

    Next i

    conn.Close

    Set conn = Nothing

    Application.DisplayAlerts = True

    Application.ScreenUpdating = True

End Sub
插入一个控件按钮,并指定宏到刚才插入的模块代码。
点击插入的按钮控件,根据提示选择标题行和要拆分的列字段

上传图片  
相关问题讨论
您好,您可以使用if函数
2022-03-15 21:30:36
你好,嗯嗯,有这种操作的呢,是的
2020-04-23 16:40:45
你好, 开票内容可以是购入婴儿套装
2020-06-02 11:40:59
可以,你做其他应收款就可以退回的时候冲回这个就行。
2018-10-22 09:29:43
你好,这个还得问老板,这是你们公司内部管理的事情哦,要看当时怎么制定的溢价分配问题
2018-09-20 14:55:27
还没有符合您的答案?立即在线咨询老师 免费咨询老师
精选问题
    举报
    取消
    确定
    请完成实名认证

    应网络实名制要求,完成实名认证后才可以发表文章视频等内容,以保护账号安全。 (点击去认证)

    取消
    确定
    加载中...