电商圈必备:如何解决从生意参谋下载的工作表拆分为多个工作表

浏览: 2106

序言:做电商特别淘宝天猫的人,总是对生意参谋不陌生的,更有下载数据的需要,由于下载的数据源里分综合端无线端pc端,对于电商的人来讲必须要单独复制到各个工作表里,之前我是碰到这个的时候一个个复制,量少还好,量大了特别麻烦还容易出问题

本文阅读对象适合于做电商的经常需要下载数据分析的人



先说明下,此方法在百度上很多的,只是我这边重新归纳整理下适合电商圈的人士,每次百度总是找不到适合电商圈的比较痛苦,要是有人总结适合电商的数据分析是比较OK的,因为痛点一样不需要百度一大篇



思路:

  • 下载数据源,下载后是这样的:
  • Clipboard Image.png
  • (由于数据是最新的所以12月29号接束后就开始pc端 相信玩生意参谋的会知道,其它外行的可能陌生些)
  • 第二步:把工作表名改成数据源,这点很关键(如下图)
  • Clipboard Image.png
  • 第三步:开发工具-visual basic,
  • Clipboard Image.png
  • 右键点击插入模块

Clipboard Image.png

  • 插入代码如下

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
  • 修改方式为:红色的地方,prompt为提示的意思,在红框里标题行所在的行数,这里是第一行就为1,后边的不要动,type:=8)
  • 以上修改完关闭
  • 第四步:回到开发工具,插入-表单工具-按钮,然后再拉个框,
  • Clipboard Image.png
  • 然后点击这个按钮
  • Clipboard Image.png
  • 请输入所在的标题行 全圈住
  • 再次点击
  • 请输入要拆分的标题名称 这里是终端
  • Clipboard Image.png
  • 点击确定后就OK了
  • 结束



  • 总结:综合下来我个人也不会编码,但是这种问题肯定前人碰到过,所以主要找代码就行,然后修改所修改的地方,至于修改哪里,会有所启示的
  • 很多朋友都被代码吓住了,阻碍了行动,还没试就跑了,学会了这个效率非常高,重要的是学会了方法
推荐 3
本文由 求知不才 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

小S的 VBA很厉害呀

要回复文章请先登录注册