大家好!昨天视频放错了,今天重新发一下。图片
这次分享的是合并系列的最后一个案例:汇总工作簿。
打个比方:把多个工作簿中的每个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自动填充表单可以极大地简化这一过程,让我们能够更专注于其他重要的工作。
譬如说,现在有两个表格,一个是人员清单,另一个的表单。
现在要做的是,将人员清单中的每一行信息,填到表单里,并导出为一个单独的工作簿。
下面是VBA的代码分享,你也可以观看下方的视频解析:
方法一:1234567891011121314151617181920212223Sub 表格填充() Dim i, j, k Dim xinXiSht As Worksheet Dim qingDanSht As Worksheet Set xinXiSht = ThisWorkbook.Worksheets("信息卡") Set qingDanSht = ThisWorkbook.Worksheets("人员清单" ...
大家好!如何按照表中的某一列,拆分成独立的Sheet? 如下:
这是一个特别常见常用的问题,本期分享本人用的最多的两个方法中的第一个。
因为确实不太容易理解,所以分为两部分。
这个方法非常的实用,在其他地方也可以发挥很大的作用,所以墙裂推荐大家掌握!
以下是VBA代码。详细解析请看文末的视频。
12345678910111213141516171819202122232425262728293031323334353637383940Sub 数组装进字典() Dim i, j, k Dim ar, tmp() Dim d As Object, kw$ Set d = CreateObject("Scripting.Dictionary") 'd.CompareMode = vbTextCompare '不区分大小写 ar = Range("a1:e" & [a65536].End(3).Row) Dim irow For i = 2 To UBound(ar) ...
大家好!
通过本次和之前几次的分享。对工作表、工作簿的拆分、合并都做了最基础的介绍以及案例演示。
而面对实际工作中经常遇到的工作表、工作簿的合并拆分问题,相信大家通过对这几个案例的交汇融合,基本上都可以找到对应的解决方案。
今天分享的是拆分系列的最有一项内容:拆分工作簿。就是把一个工作簿中的所有Sheet拆分成一个一个的独立的工作簿。
通过今天的案例,你将掌握工作表对象的Move和Copy方法。听起来很陌生,其实是你经常在用的一个很普通的功能:
语法: Sheet.Copy([Before],[After])’参数可选,非必须 Sheet.Move([Before],[After])’参数可选,非必须注意: 如果不填参数,将会把Sheet移动或复制到一个新的工作簿中以下是VBA代码。详细解析请看文末的视频。
123456789101112131415161718192021Option ExplicitSub 拆分工作簿() Dim sht As Worksheet Dim filePath filePath = ThisWorkbook.Path & ...
大家好!书接上文。
有时候,我们需要处理多个工作簿,每个工作簿中包含一些特定的信息。为了将这些信息汇总到一个表中,我们可能需要手动打开每个工作簿,然后复制粘贴所需的数据。但这样做既费时又容易出错。
所以,使用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 ...
大家好!
合并单元格是经常遇到的操作,在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 ...
大家好!
如果你是文职类工作,可能会遇到下面这种情况:
经常面对各种各样的表格,并且很多都是制式的,里边又充满个各种各样的格式,其中就有今天的主角儿:合并单元格。
而你的工作看似也不复杂,就是把合并单元格中显示不全的内容,通过调整单元格的大小来显示出来。
这种痛苦,只有手动调整过的人能懂。
所以,通过今天的案例讲解,将解决你的烦恼,文末视频对这个过程做了详细的讲解演示,希望对你有帮助。
以下是VBA代码。详细解析请看文末的视频。
调整合并单元格行高:
1234567891011121314151617181920212223242526272829303132333435363738Sub 调整合并单元格行高() Dim cel As Range Dim rng As Range Dim n, r, c Dim mergeWidth, newHeight, celWidth Set rng = Range("B4") For Each cel In rng If cel.MergeCells Then ...
大家好!书接上文,继续聊一聊拆分工作表的第二个方法。
众所周知,字典中的值不仅可以是数字、字符串,还可以是数组和对象!
上一个方法是将数组装到了字典里,这第二个方法想必大家已经猜到了,就是把对象装进字典里。
首先简单介绍一下Union函数的使用方法。Union:返回两个或多个区域的合并区域。
语法: Union(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30) AS Range参数: Arg1 必需 Range类型。 Arg2 必需 Range类型。 Arg3– Arg30 可选 Variant类型。返回: Range类型。另外一点需要强调的是,VBA中给对象变量赋值使用Set,并且Set不能省略。
以下是VBA代码。 ...
大家好!今天回答一位粉丝朋友的提问。
问题是:将多个工作簿中的所有工作表合并汇总,要求名称相同的工作表内容要合并在一起,名称不同的要单独作为一个工作表。
为此,我模拟了一份数据,结构如下图:
这个问题,其实是我之前分享的【案例011合并工作表】和【案例013汇总工作簿】的融合版。方法非常的相似。其实对于工作簿和工作表的合并与拆分的操作,之前的案例基本都分享完了。只要融会贯通,举一反三,相信这种问题将迎刃而解。
效果就不演示了,以下是VBA代码。详细解析请看文末的视频。
123456789101112131415161718192021222324252627282930313233343536Option ExplicitSub 汇总合并工作簿() Dim shtName Dim sht As Worksheet For Each sht In ThisWorkbook.Worksheets shtName = shtName & "," & sht.Name Next Dim filePath$, fi ...
大家好!
上一篇内容分享了,用VBA合并单元格的两个方法。本期就来看一下如何取消合并的单元格。
同样的,WPS内置了一键取消合并单元格并填充内容的功能,而Excel用户只能流下羡慕的泪水。
这次介绍两个方法,来实现和WPS一模一样的功能。
第一个方法:使用录制宏的操作,把平时手动取消合并的操作记录下来,并对代码加以修改,来达到目的。第二个方法:使用的循环单元格判断是否合并的方法,其中有几个常用的属性是我们必须要了解掌握的。
两个方法都比较简单。大家可以根据实际情况,酌情选择适用的方法。
以下是VBA代码。详细解析请看文末的视频。
方法一:1234567Sub 宏2() Range("a1:a20").UnMerge Range("a1:a20").SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C" Range("a1:a20").Value = Range("a1:a20").ValueEnd Sub
方法二 ...