首页
学习
活动
专区
圈层
工具
发布

用VBA实现Excel函数01:VLOOKUP

很多学习VBA的应该都是在使用了一段时间的Excel之后,想弥补一些Excel本身的不足、或者是实现一些自动化操作。...函数是Excel里非常重要的一个功能,所以,我们结合Excel的函数,用VBA去实现一些常用的函数功能。...Excel的函数其实在底层肯定也是一段写好了的程序,只是我们看不到 它的实现过程,我们用VBA实现这些函数的功能,多半会比内置函数慢很多,而且考虑的情况也不够全面,但我们主要是学习一些思路。...1、实现简单的VLOOKUP 提到Excel的函数,VLOOKUP函数应该是最为常用的一个查找函数了,一般我们都是使用它的精确查找功能,也就是第4个参数设置为0或者false,所以我们也只实现一个精确查找的函数...72848 Excel Vlookup返回值 72848 一切正常,其中我们还调用了Excel的内置函数进行了对比,要使用Excel的内置函数,只需要加上Application.WorksheetFunction

10K31

Excel-VBA复制工作表到新工作簿方法

在工作中我们常常会在一个工作簿的一个工作表中输入数据,再另存为一个新的工作簿。 如:在文件“自动工具.xlsx”中有一个工作表为“模板”。...我想在“模板”工作表中输入数据,再另存为一个新的文件为“小龙女.xlsx” 【知识点】 下面是本个收藏的代码,三种方法,以备用 【代码】 '方法一:复制工作表另存为新的工作簿 Sub copySaveAs...Filename:=ThisWorkbook.Path & "\小龙女.xlsx" ActiveWorkbook.Close SaveChanges:=True End Sub '方法二:复制工作表为新的工作表...,写入数据,再移动工作表另存为新的工作簿 Sub MoveSaveAs() wsh_num = Worksheets.Count Worksheets("模板").Copy After:...,再复制工作表到新工作簿中 Sub AddCopySaveAs() Path = ThisWorkbook.Path & "\" Set newwb = Workbooks.Add

14K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Excel VBA常用功能加载宏——工作表隐藏

    工作表的隐藏很简单,只需要右键点击工作表名称,然后点击隐藏就可以。 但是取消隐藏也差不多,右键点击后,选择某个工作表名称。...这种基本的操作,大多数人Excel用过一段时间的应该都会,所以保证不了其他人不会发现隐藏起来的表格。...其实Excel里还有一个深度的隐藏,这种隐藏后,右键点击取消隐藏是看不到的,这样应该就能瞒过大多数人了。...这个可以通过VBA代码编辑器里的属性窗口,设置工作表的Visible属性为xlSheetVeryHidden来实现,当然使用VBA来设置肯定就更为方便快捷了: ?...在设置当前工作表隐藏的时候,需要判断工作簿是否还有其他的可见工作表,否则会报错。

    3.7K30

    VBA专题10-2:使用VBA操控Excel界面之设置工作表

    本文主要讲解操控工作表中一些界面元素的VBA代码。 名称框 名称框中的名字是为单元格区域定义的名字,可以由用户定义名称,或者由Excel自动创建,例如Print_Area和表1。...:即便用户移动和重命名工作表,或者添加工作表,VBA代码将仍然引用的是正确的工作表。...然而,其缺点在于不能引用不同工作簿中的工作表。...在当前窗口中滚动活动工作表不会导致在其他非活动窗口中的滚动。活动工作表可以是标准工作表、图表工作表、宏工作表或者对话框工作表。...ActiveWindow.GridlineColorIndex= xlColorIndexAutomatic 说明:本专题系列大部分内容学习整理自《Dissectand Learn Excel VBA

    6.9K41

    VBA专题10-3:使用VBA操控Excel界面之设置工作表(续)

    本文继续讲解操控工作表中一些界面元素的VBA代码。 工作表中的行列 隐藏和取消隐藏行标题 不能够分别单独隐藏行标题和列标题,只能同时隐藏或者显示这两个标题。...= True 隐藏和取消隐藏工作表行 可以使用下列任一VBA语句隐藏活动工作表中的所有行: '隐藏工作簿的活动工作表中所有行 ActiveSheet.Rows.Hidden= True ActiveSheet.Rows.EntireRow.Hidden...= True ActiveSheet.Cells.Rows.Hidden= True 要隐藏其他工作表中的行,只需使用该工作表代替ActiveSheet,例如使用Sheets(1)代表第1个工作表,或者使用...= True ActiveSheet.Cells.Columns.Hidden= True 要隐藏其他工作表中的列,只需使用该工作表代替ActiveSheet,例如使用WorkSheets(1)代表第1...说明:本专题系列大部分内容学习整理自《Dissectand Learn Excel VBA in 24 Hours:Changingworkbook appearance》,仅供学习研究。

    2.4K20

    使用VBA合并工作表

    标签:VBA 从多个Excel工作表(子工作表)中获取信息,并用子工作表中的所有数据填充汇总工作表(父工作表),这是很多朋友会提到的常见要求。...如果部分数据是从添加新工作表到工作簿中而增长的,那么获得这些数据的汇总非常方便,例如,添加单独的工作表,包含新月份的数据。...将新工作表信息添加到汇总工作表的一种非常快速的方法是遍历工作簿中的所有工作表,使用VBA合并数据。...上面的过程首先将清除Summary工作表,但标题保持不变,以便将新数据粘贴到该工作表中。 此外,还可以将多个工作表中的数据复制到Summary工作表中某个单元格区域的底部。...注:你可以到thesmallman.com下载示例工作簿,或者到知识星球App完美Excel社群下载示例工作簿。

    3.3K30

    VBA技巧:复制多个工作表

    标签:VBA 有时候,我们想要批量复制多个工作表到新的工作簿,可以使用VBA代码来实现。...例如,工作簿中有三个工作表,其名称分别为:Data、完美Excel和Output,要将这三个工作表一次复制到一个新的工作簿中并保存,示例代码如下: Sub CopyMultiSheet() Application.ScreenUpdating...", "Output")).Copy 这里Sheets对象的Copy方法在复制工作表的同时,会生成一个新工作簿,而Array方法会将工作表组合到一起,就像我们在工作簿中按Ctrl键的同时选择工作表标签一样...工作簿对象的SaveAs方法存储新工作簿(使用工作表Data的单元格A1中的内容作为工作簿名称),而Close方法关闭新工作簿。...有兴趣的朋友可以自己创建一个工作簿,按代码中的名称命名工作表,然后将上述代码复制到VBE标准模块中,运行代码试试看,这样就会对代码的作用有更深的理解。

    3.7K20

    VBA应用技巧:使用VBA快速隐藏工作表行

    标签:VBA 使用Excel VBA隐藏行的简单方法是使用联合区域。通常,如果要使用VBA快速隐藏行,可以选择自动筛选工具,使用一行代码可快速隐藏数千行。...然而,如果需要在同一区域内为其他目的使用自动筛选,那就必须单独处理每个单元格。如果了解VBA,当程序必须在多个单元格上循环时,它可能会较慢,尤其是在每次迭代后需要执行操作时。...Set JoinR = r End If End If Next r JoinR.EntireRow.Hidden = True End Sub Sheet1是名为Hide的工作表的工作表代码名称...lr代表工作表中最后使用的行的行号。最后,Rng变量是第一个使用的行到最后一个使用的行之间的区域。...注:本文学习整理自thesmallman.com,有兴趣的朋友可到该网站下载原始示例工作表,或者到知识星球App完美Excel社群下载。

    6.2K31

    撤销VBA对工作表的操作

    excelperfect 标签:VBA 当执行VBA过程代码后,如果想反悔,像在Excel中操作一样,使用Excel的撤销功能或者按Ctrl+Z来撤销VBA代码对工作表的改变,不会起作用。...这里,在jkp-ads.com中找到了代码,可以用来撤销VBA对工作表的操作。代码中,关键是两个类模块,创建了一个通用撤消处理程序,可以将其导入到任何项目。...这里的程序可以撤消的操作通常仅限于对对象属性的更改,无法撤消插入或删除工作表、刷新查询表、更新数据透视表等操作。...有兴趣的朋友可以查看: https://jkp-ads.com/articles/undowithvba00.asp 研阅原文并下载示例工作簿。...或者,在完美Excel微信公众号中发送消息: 撤销代码操作 获取原示例工作簿的下载链接。 或者,直接到知识星球App完美Excel社群中下载原示例工作簿。

    1.4K10

    如何通过VBA代码实现禁止用户打印Excel工作表?保护隐私必备技能

    一般情况下,为了保护Microsoft Excel工作簿的安全性,会对工作簿进行加密处理,这是保护工作薄安全性的方法之一。...我们可以通过VBA代码来实现禁止用户打印Microsoft Excel工作簿,接下来一起看一下具体操作流程。 以素材文件为例,右键单击工作表列表区域的Sheet1,选中右键菜单中的“查看代码”。...以素材文件为例,素材工作簿中有多个工作表,如何设置让用户只能够打印“汇总表”,分表只能查看,不能打印呢? 只需将VBA代码改为以下代码即可。...Cancel = True End If End Sub 这时打印工作簿中其他分表时,会有提示框提示禁止打印。打印“汇总表”没有影响。...今天的分享到此结束,最后的存储文件环节非常重要,需要将包含VBA代码的Excel工作簿另存为“*.xls”或“*.xlsm”格式,否则VBA代码将失效。

    2.5K00

    EX-VBA:迄今为止最简单的Excel工作表密码解除方法

    不知道是哪位大神发现的这么一个类似Excel的软件漏洞一样的工作表密码破解方法,太牛逼,分享如下,供忘记密码的朋友应急使用: 『 动画解读 』 对于设置了工作表密码的工作簿,打开后,...具体操作步骤如下: Step-01:通过菜单【开发工具】-【Visual Basic】进入VBA编辑界面 Step-02:在VBA编辑窗口的【立即窗口】中逐步执行以下代码(输完一句回车后再输入另一句并回车其中...sheet1为需要破解密码的工作表的名称) sheet1.Protect AllowFiltering:=true sheet1.unProtect 逐步执行这两行代码后,工作表的密码将被解除...如果打开VBA编辑窗口时没有立即窗口,可以通过菜单【视图】-【立即窗口】调出来,如下图所示: 『 扩展应用 』 如果需要批量解除的,可以自行加入循环控制语句,写成一个过程。

    9.1K20

    Excel公式技巧17: 使用VLOOKUP函数在多个工作表中查找相匹配的值(2)

    我们给出了基于在多个工作表给定列中匹配单个条件来返回值的解决方案。本文使用与之相同的示例,但是将匹配多个条件,并提供两个解决方案:一个是使用辅助列,另一个不使用辅助列。 下面是3个示例工作表: ?...图1:工作表Sheet1 ? 图2:工作表Sheet2 ?...图3:工作表Sheet3 示例要求从这3个工作表中从左至右查找,返回Colour列中为“Red”且“Year”列为“2012”对应的Amount列中的值,如下图4所示的第7行和第11行。 ?...图4:主工作表Master 解决方案1:使用辅助列 可以适当修改上篇文章中给出的公式,使其可以处理这里的情形。首先在每个工作表数据区域的左侧插入一个辅助列,该列中的数据为连接要查找的两个列中数据。...16:使用VLOOKUP函数在多个工作表中查找相匹配的值(1)》。

    21.1K10

    Excel公式技巧16: 使用VLOOKUP函数在多个工作表中查找相匹配的值(1)

    在某个工作表单元格区域中查找值时,我们通常都会使用VLOOKUP函数。但是,如果在多个工作表中查找值并返回第一个相匹配的值时,可以使用VLOOKUP函数吗?本文将讲解这个技术。...最简单的解决方案是在每个相关的工作表中使用辅助列,即首先将相关的单元格值连接并放置在辅助列中。然而,有时候我们可能不能在工作表中使用辅助列,特别是要求在被查找的表左侧插入列时。...下面是3个示例工作表: ? 图1:工作表Sheet1 ? 图2:工作表Sheet2 ?...图4:主工作表Master 数组公式如下: =VLOOKUP($A3,INDIRECT("'"&INDEX(Sheets,MATCH(TRUE,COUNTIF(INDIRECT("'"&Sheets&"...2个工作表即Sheet2中执行VLOOKUP操作。

    42.6K21
    领券