大家好!书接上文。
有时候,我们需要处理多个工作簿,每个工作簿中包含一些特定的信息。为了将这些信息汇总到一个表中,我们可能需要手动打开每个工作簿,然后复制粘贴所需的数据。但这样做既费时又容易出错。
所以,使用VBA依然可以解决这个问题。极大地简化这一过程,让我们能够更专注于其他重要的工作。
举个例子,现在我们有100个工作簿。
需要从里边提取员工信息汇总到一个表里边。
猜猜看,用VBA处理这些需要多久?
下面是VBA的代码分享,你也可以观看下方的视频解析:
公共函数:
1234567891011121314151617Private Function filelist(folderspec, Optional pstr = "*.txt") On Error GoTo errline Dim fs, f, f1, fc, i, farr Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(folderspec) Set ...
大家好!今天分享的案例是多条件查询。
这个查询在进销存或者库存管理中特别常用,如果你准备或者正在做一个自己的管理查询工具,这个方法一定要会。先来看一下数据。
比如说,现在有一份产品信息表。
我们要做的是在查询页面,输入参数后,查询出所有满足条件的内容。其中参数可以不填,不填就表示要查询所有内容。
本期将使用2个方法来实现效果,以下是VBA代码,详细视频解析在文末。
方法一:1234567891011121314151617181920212223242526272829303132333435363738Sub 方法一() Dim i, j, k Dim ar, br() With Sheet2 ar = .Range("a1:f" & .[a65536].End(3).Row) End With ReDim br(1 To UBound(ar), 1 To UBound(ar, 2)) Dim customer, product, startDate As Date, endDate As Date ...
大家好!今天分享一下遇到合并单元格的处理思路。
工作中,为了方便查看数据,很多朋友习惯性的把单元格合并起来,这样使得表格看起来清晰美观了不少。但这样做的同时,会给以后的计算增加很多困难。
比如下边:要计算产品的总库存。
当我们要对合并单元格进行汇总统计的时候,总会遇到很多问题。其实只要你明白合并单元格的底层逻辑之后,问题就会变的简单起来。
合并单元格:其实只保留了区域左上角的一个值,其他位置都是空的。
明白原理之后,我们再来看下VBA代码,详细解析请看文末视频。
12345678910111213141516171819Sub 汇总() Dim i, j, k Dim ar ar = Range("a1:c" & [c65536].End(3).Row) Dim d As Object, kw$ Set d = CreateObject("Scripting.Dictionary") 'd.CompareMode = vbTextCompare '不区分大小写 For i = ...
大家好!今天将为大家介绍在Excel中如何实现下拉多选功能,让数据输入更加灵活高效。
下拉多选功能不仅提高了数据输入的灵活性,还减少了输入错误的可能性,为我们的数据处理工作带来了更高的效率。
也许你见过使用表单控件的方式实现下拉多选,但是通过数据验证和VBA,我们同样能够轻松创建具有下拉多选功能的工作表。
以下是VBA代码,详细解析请看文末视频。
1234567891011121314151617181920212223242526272829303132333435363738Private Sub Worksheet_Change(ByVal Target As Range) Dim rngDV As Range Dim oldVal As String Dim newVal As String Dim fenGeFu As String If Target.CountLarge > 1 Then Exit Sub fenGeFu = "," '规定用逗号分隔 On Error Resume Next ...
大家好!终于放假了,知了祝大家双节快乐!~
今天分享的案例非常的经典,它让我首次见识了VBA的魅力。也是从那会儿开始,命运的齿轮开始转动,走上了学习VBA的道路。
它就是:合并工作表。
问题很简单:就是把一个工作簿里的所有sheet合并到一个总表里边。
如下图:将 4个班级的信息合并。
以下是VBA代码(长按复制,可向右托动),详细解析请看文末视频。
方法一:复制粘贴12345678910111213141516171819Sub 复制粘贴() Dim sht As Worksheet Dim zongSht As Worksheet Set zongSht = Worksheets("总表") Dim rowsCount, zongRows For Each sht In Worksheets If sht.Name <> "总表" Then With sht rowsCount = .[a65536].End(3).Row ...
大家好!你是否在为数据去重感到烦恼?
今天,我们将分享两种高效的 VBA 方法,帮助你轻松应对数据去重难题。
举个例子。
我们要对以下数据的产品和型号进行数据去重,保留唯一值。
以下是VBA代码,你也可以直接观看下方的视频解析:
方法一:123Sub 方法一() Range("f1:h18").RemoveDuplicates Array(1, 2), xlYesEnd Sub
方法二:12345678910111213141516171819202122232425Sub 方法二第一次出现的值() Dim i, j, k Dim ar, br() ar = Range("a1:c18") ReDim br(1 To UBound(ar), 1 To UBound(ar, 2)) Dim d As Object, kw$ Set d = CreateObject("Scripting.Dictionary") 'd.CompareMode = vbTextCompa ...
大家好!昨天视频放错了,今天重新发一下。图片
这次分享的是合并系列的最后一个案例:汇总工作簿。
打个比方:把多个工作簿中的每个Sheet,汇总到一个工作簿里,汇总完之后是所有的Sheet都在同一个工作簿里。
这次使用了Dir函数,以下是VBA代码。详细解析请看文末的视频。
‘Dir函数:返回的是指定路径下【文件】或者【文件夹】的名称。如果不存在,就返回 “” 字符串‘Dir 函数一般搭配 do while 循环遍历文件,结束的条件就是Dir返回空值。
‘举例:‘fileName1 = Dir(“E:\test*.xlsx”) 查找E盘test文件夹里边的xlsx工作簿,将第一个工作簿名称返回‘fileName2 = Dir 查找下一个,并且不需要写参数‘fileName3 = Dir 查找下一个,并且不需要写参数‘fileName4 = Dir 查找下一个,并且不需要写参数‘…… ...
大家好!今天回答一位网友的问题。
就是用VBA进行多条件汇总,来实现数据透视表的效果,并且要对结果进行排序。
先来看例子。
假如我们有一份产品信息表,需要对它的所有产品和型号进行汇总。左侧是原始数据,右侧是处理结果。
我们来通过三个不同的方法,来解决这个问题。其中方法一:最容易理解,适合对字典刚入门的情况。方法二:具有有一定的难度,需要对字典有更加深刻的了解。方法三:作为拓展内容。
以下是VBA代码,你也可以直接观看下方的视频解析:
方法一:123456789101112131415161718192021222324252627282930Sub 方法一() Dim i, j, k Dim ar Dim d1 As Object, d2 As Object, d3 As Object Set d1 = CreateObject("Scripting.Dictionary") Set d2 = CreateObject("Scripting.Dictionary") Set d3 = CreateObject ...
大家好!
通过本次和之前几次的分享。对工作表、工作簿的拆分、合并都做了最基础的介绍以及案例演示。
而面对实际工作中经常遇到的工作表、工作簿的合并拆分问题,相信大家通过对这几个案例的交汇融合,基本上都可以找到对应的解决方案。
今天分享的是拆分系列的最有一项内容:拆分工作簿。就是把一个工作簿中的所有Sheet拆分成一个一个的独立的工作簿。
通过今天的案例,你将掌握工作表对象的Move和Copy方法。听起来很陌生,其实是你经常在用的一个很普通的功能:
语法: Sheet.Copy([Before],[After])’参数可选,非必须 Sheet.Move([Before],[After])’参数可选,非必须注意: 如果不填参数,将会把Sheet移动或复制到一个新的工作簿中以下是VBA代码。详细解析请看文末的视频。
123456789101112131415161718192021Option ExplicitSub 拆分工作簿() Dim sht As Worksheet Dim filePath filePath = ThisWorkbook.Path & ...
大家好!
合并单元格是经常遇到的操作,在WPS中,提供了非常好用的快捷按钮。遗憾的是Excel里并没有这个一键合并单元格的功能。
今天分享用VBA合并单元格的两个最常用的方法,如果你是WPS用户,虽然不需要代码,但是编程的思路,还是有参考价值的。
以下是VBA代码。详细解析请看文末的视频。
方法一:12345678910111213141516171819Sub union并集函数() Dim i Dim rng As Range Set rng = [a2] Application.DisplayAlerts = False For i = 2 To 20 If Range("a" & i + 1) = Range("a" & i) Then Set rng = Union(rng, Range("a" & i + 1)) Else rng.Merge Set rng = Ra ...
