VBA实现VLOOKUP函数功能
数据
VBA
姓名
年龄
姓名
年龄
潘全桂
24
荆琛泽
霍栋保
35
吉栋松
荆琛泽
24
百里刚晓
越伦信
25
农康雪
吉栋松
34
越伦信
桂真顺
27
霍栋保
百里刚晓
19
潘全桂
农康雪
33
桂真顺
直接附上VBA代码:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364'Option ExplicitSub 单元格循环() Dim cel As Range Dim cel2 As Range Dim t As Double t = Timer [e6:e13] = "" For Each cel In Range("a6:a13") For Each cel2 In ...
一对多查询的方法有很多,这里附上VBA代码,详细过程请看文章最后的视频。
方法一:12345678910111213141516171819202122Sub 单元格循环() Dim i, j, k, irow Dim cel As Range Dim t As Double t = Timer Sheets("查询").Range("a6:d65536").ClearContents Dim str As String str = Sheets("查询").Range("b3") k = 5 With Sheets("数据源") For Each cel In .Range("a2:d" & .[a65536].End(3).Row) 'xlup If cel.Value = str Then k = k + 1 ...
大家好!今天回答一位网友的问题。
就是用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 ...
大家好!今天分享一下遇到合并单元格的处理思路。
工作中,为了方便查看数据,很多朋友习惯性的把单元格合并起来,这样使得表格看起来清晰美观了不少。但这样做的同时,会给以后的计算增加很多困难。
比如下边:要计算产品的总库存。
当我们要对合并单元格进行汇总统计的时候,总会遇到很多问题。其实只要你明白合并单元格的底层逻辑之后,问题就会变的简单起来。
合并单元格:其实只保留了区域左上角的一个值,其他位置都是空的。
明白原理之后,我们再来看下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 = ...
大家好!今天分享的案例是多条件查询。
这个查询在进销存或者库存管理中特别常用,如果你准备或者正在做一个自己的管理查询工具,这个方法一定要会。先来看一下数据。
比如说,现在有一份产品信息表。
我们要做的是在查询页面,输入参数后,查询出所有满足条件的内容。其中参数可以不填,不填就表示要查询所有内容。
本期将使用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 ...
大家好!今天将为大家介绍在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 ...
大家好!这次分享的是非常经典的案例:合并工作簿。
相信大家已经很熟悉这个问题了,就是把多个工作簿里的工作表合并到同一个sheet里。
这次同样分享两个方法,以下是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 fc = f.Files ReDim farr(1 To fc.Count) For Each f1 In fc If f1.Name Like pstr And Not f1.Name Like "*~$*" T ...
大家好!终于放假了,知了祝大家双节快乐!~
今天分享的案例非常的经典,它让我首次见识了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 ...
大家好,模糊查询,在平时工作中会经常遇到。
本期呢,会将模糊查询的两个最常用的方法分享给大家。
1、instr函数2、like运算符
在开始之前,我建议先把上一期的【VBA案例002】一对多查询看一遍。因为本次内容是基于上次的文件衍生出来的。并且代码也大同小异。
先附上VBA代码,详细内容,请看文章最后的视频哦!~
方法一:123456789101112131415161718192021222324Sub 单元格循环() Dim i, j, k, irow Dim cel As Range Dim t As Double t = Timer Sheets("查询").Range("a6:d65536").ClearContents Dim str As String str = Sheets("查询").Range("b3") k = 5 With Sheets("数据源") For Each cel In .Rang ...