当前位置:首页 > 新闻资讯 > 科技生活 > 新闻
办公达人堂
  • 2017/7/18 14:12:59
  • 类型:原创
  • 来源:电脑报
  • 报纸编辑:电脑报
  • 作者:
【电脑报在线】玩PPT设计,一定要懂一点数学知识如此会让PPT漂亮起来。

一次性合并多薄多表

@太阳多肉

     一个文件夹下有多个Excel工作簿,每个Excel工作簿里面又有多可工作表,有什么方法可以一次性合并文件夹内多薄多表中的内容吗?可以借助VBA代码实现,在文件夹内新建一个Excel,然后输入VBA代码:

    Dim Arr, MyPath$, MyName$, R&, Col%, aR_n&,shname

    Dim Wb As Workbook '定义源文件,同目录下其它文件

    Dim Ws As Worksheet '定义目标文件,当前文件

    Dim F As Object

    shname=activesheet.name   '定义合并的工作表名

    Application.ScreenUpdating = False

    MyPath = ActiveWorkbook.Path & "\"

    MyName = Dir(MyPath & "*.xls")

    For Each Ws In ActiveWorkbook.Sheets

        '清除原有记录

        Set F = Cells.Find("*", , , , , xlPrevious)

        If Not F Is Nothing Then

            Ws.Rows("2:" & F.Row + 1).Delete '多加一防止只有一行标题行时删除标题

        End If

    Next Ws

    '逐个打开文件相同表名合并

    Do While MyName <> ""

        If MyName <> ActiveWorkbook.name Then

            Set Wb = GetObject(MyPath & MyName)

            For Each Ws In Wb.Sheets

                With Ws

                     if ws.name=shname then

                    Set F = .Cells.Find("*", , , , , xlPrevious) '求源文件最大行

                    If Not F Is Nothing Then

                        R = F.Row

                        If R > 1 Then '如果只有一行或空表不合并

                            Col = F.Column

                            Arr = .Range(.Cells(2, 1), .Cells(R, Col))

                            Set F = Sheets(Ws.name).Cells.Find("*", , , , , xlPrevious) '求目标文件最大行

                            If F Is Nothing Then

                                aR_n = 2

                                Else

                                aR_n = F.Row + 1

                            End If

                            Sheets(Ws.name).Cells(aR_n, 1).Resize(UBound(Arr), Col) = Arr

                            Sheets(Ws.name).Cells(aR_n, Col + 1).Resize(UBound(Arr)) = MyName '填充文件名

                        End If

                    End If

                   endif

                End With

            Next Ws

            Wb.Close False

            Set Wb = Nothing

            Set Ws = Nothing

        End If

        MyName = Dir

    Loop

    Application.ScreenUpdating = True

End Sub

最后,就是为新增加的宏命令指定一个按钮,今后点击按钮就可以自动进行多薄多表的合并。

董师傅点评:其实可以借助Excel插件工具——多薄多表合并mergebooks.dll,省去输入代码这个过程且操作更丰富,例如可以进行分类汇总合并。  


迷你图清晰展现数据变化

@星兔粑粑

      为了直观展示数据变化,经常要在Excel销售表格中使用“图表”中的“折线图”,不过Excel生成的“折线图”比较大很占空间,有没有更好的方法呢?在一个单元格中可以绘制出简洁的小图表吗?使用迷你图功能就可以做到,方法如下:

      在Excel工作表中,切换到“插入”选项卡,就可以看到“迷你图”选项卡,点击其中的“折线图”按钮,在弹出的“创建迷你图”对话框的“数据范围”处输入一个数据区域,例如A2~H2,在“位置范围”处输入放置图表的目标单元格位置,例如J2单元格,最后点击“确定”就可以创建一张折线迷你图,用同样的方式可以为设置一系列的折线迷你图。

      为了让折线迷你图更美观,点击“迷你图工具”选项卡在的“设计”,再在“样式”中选择“其他”,打开迷你图样式库,之后选择一个自己喜欢的样式,再在“显示”选项组中点击“高点”和“低点”,以便在图表中突出显示最高值和最低值,最后可以通过更改“标记颜色”让图表中的最高值和最低值更好的被识别。 


董师傅点评:Excel 2010及以上的版本才有迷你图功能。

 

请关注董师傅微博

 

怎么办公最有效率?怎么办公最轻松?来看看董师傅的珍藏,相信你一定会有意外的收获。顺带也可以听听董师傅的理财心得,倾听财富的声音!同时有问题也可以微博私信董师傅。

本文出自2017-07-17出版的《电脑报》2017年第28期 A.新闻周刊
(网站编辑:pcw2013)


我来说两句(0人参与讨论)
发表给力评论!看新闻,说两句。
匿名 ctrl+enter快捷提交
读者活动
48小时点击排行
论坛热帖