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

VBA实用小程序63: 查找并返回与指定属性匹配的所有单元格

本文介绍的VBA程序是一个自定义函数,整理自jkp-ads.com,很好地增强了内置的CallByName函数的适用性。...该函数接受单元格对象、代表该对象属性的字符串和属性值作为参数,返回满足属性值的所有单元格。...图1 下面使用FindCells函数查找并选择所有红色背景色的单元格,代码如下: Sub UseFindCellsExample() FindCells(ActiveSheet.UsedRange...3.参数calltype,必需,一个vbCallType型的常量,代表被调用的过程的类型,可以是vbGet(返回属性)、vbLet(修改属性)、vbMethod(执行方法)、vbSet(设置对象)。...的背景色的值,可以使用下面的代码: Sub test() MsgBox CallByName(ActiveCell.Interior,"Colorindex", VbGet) End Sub 返回值

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

    Excel中的VBA编程「建议收藏」

    目的:有时我们需要对Excel文件中大量的数据进行整理,此时如果使用手动整理会非常繁琐而且容易出错。而如果采用VBA语言,在Excel中根据需求编写一段简单的代码就能自动完成大量数据的整理工作。...1、以Excel 2007为例,如果要进行VBA编程,需要启用“开发工具” 选项。在Excel 选项对话框中勾选【在功能区显示“开发工具“选项卡】复选框。...并在该模块中添加一个名为Test的函数,如下所示: 在Sub 和End Sub间添加函数体,并保存。注意一定要将Excel文件保存为启用宏的工作薄(*.xlsm)格式。...List = List + 1 Loop 10、实现单元格中内容换行的字符 Chr(10) 11、检测文件是否存在 Dir(完整路径的文件名) '文件存在则返回文件名,不存在则返回为空 12...、从B列的最后一个单元格往上查找,并返回遇到的第一个非空单元格所在的行号 Range("B65536").End(xlUp).Row 13、从字符串“100/200″中取出”200″字符串 Split

    11.2K20

    VBA与数据库——简化程序编写-筛选

    要对Excel数据进行筛选,最容易想到的方法自然是Excel本身的数据-筛选功能,但是如果是要在VBA中对数据进行筛选,那么一般的做法是对数据进行循环遍历,把符合条件的数据提取出来,假如数据是这样的:...Dim arr() As Variant '读取数据源 arr = Range("A1").CurrentRegion.Value '记录需要筛选的数据需要放到arr中的行号...Long prow = 2 Dim i As Long For i = 2 To UBound(arr) '筛选项目包含s的 If VBA.InStr..."Provider =Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel...Sheet1$A1:B5] where 项目 like '%s%'", , 1) AdoConn.Close Set AdoConn = Nothing End Sub 代码和前面的汇总数据、查找数据一样

    1.5K20

    VBA掌握循环结构,包你效率提高500倍

    这是系列免费教程《Excel VBA:办公自动化》,还是老规矩,看看我们走到哪里了。 1.认识VBA:什么是VBA?...在「单元格B2」输入不同的行号,点击「显示答案」按钮,计算「F列」和「H列」对应行号的乘积,并将每个乘积结果加上公共值「单元格B4」的50,将最终结果显示在相应的单元格。...其实,上述案例是我之前部门同事工作的简化版,他经常要面对机械重复、枯燥乏味的Excel表格操作。...1.for循环 案例:不输入题号,仅点击1次「显示答案」按钮,所有题目答案自动计算后显示在「J列」 我们来分析案例(仅以10道题目来分析) 我们观察发现:行号是变化的,而且是「正向递增加1」的规律。...(3)读取第3句「循环结束」代码「Next x」 此时,「变量 x = 2」 (4)程序回到第1句读取「循环开始」语句「For x = 1 To 10 Step 1」 我们可以看到此时程序自动返回「循环开始

    1.4K30

    VBA掌握循环结构,包你效率提高500倍

    image.png 这是系列免费教程《Excel VBA:办公自动化》,还是老规矩,看看我们走到哪里了。 1.认识VBA:什么是VBA?...在「单元格B2」输入不同的行号,点击「显示答案」按钮,计算「F列」和「H列」对应行号的乘积,并将每个乘积结果加上公共值「单元格B4」的50,将最终结果显示在相应的单元格。...其实,上述案例是我之前部门同事工作的简化版,他经常要面对机械重复、枯燥乏味的Excel表格操作。...行号是变化的,而且是「正向递增加1」的规律。...我们可以看到此时程序自动返回「循环开始」的地方,由于此时「变量 x = 2」仍然符合「X 从 1 变为 10 每次增加1」这个区间,因此程序接着运行,一直等到「变量 x = 11」的时候,程序会跳出循环

    2.5K00

    Excel VBA编程教程(基础一)

    Excel VBA 对象 我们学习 VBA 的最终目的是操纵 Excel,完成一些特定的目标。其中,操纵 Excel 就是通过 Excel VBA 对象完成的。...在示例中,Cells() 就是一个 Excel VBA 对象,表示一个单元格,提供行号和列号指定单元格。 程序运行结构 接下来是程序结构中最核心的部分,也是最有意思的部分,程序运行结构。...在程序开始,可以声明一个变量,指定变量的类型(数字、文本、逻辑值等),并给变量赋值。在程序其他地方,就可以用该变量,使其存储的值参与运算。...VBA 运算符可以分为以下 6 类: 赋值运算符 算数运算符 比较运算符 逻辑运算符 连接运算符 其他运算符 VBA 中的连接运算符用于连接 2 个或多个文本。...) 将两行代码放置在一行 比较运算符 比较运算符,比较提供的两个变量,如果符合比较条件,返回 True,否则,返回 False。

    41K49

    VBA变量5年踩坑吐血精华总结

    image.png 这是《Excel VBA:办公自动化》教程的第3节,介绍变量。...bottom(最小值)和top(最大值)之间的随机数,且每次Excel编辑后该公式都会自动刷新返回的随机数; 我们一起思考一下,这样一个需求用第02篇(todo文章传输门)分享的能够实现吗?...image.png 我们观察发现:行号是变化的,而且是「正向递增加1」的规律。 在VBA中,我们将这种根据需要能够随时变化的称为变量。...中寻找单元格F1的值为 28,单元格H1的值为30,计算二者之间的值 image.png (6)最后,将二者的乘积赋值给「单元格F1」,并执行值写入操作 image.png 通过,以上我们使用...比如:sub和end sub表示程序的开始和结束;for表示循环;while表示循环..... (4)VBA大小写不敏感 比如:定义变量Aa = 1 和变量 aA = 10,我们人可能认为两个变量不一样

    2.6K00

    常用功能加载宏——快速定位合并单元格

    在Excel表格里,合并单元格会给使用过程带来很多麻烦,但是有时候为了排版好看,又需要用到合并的功能。 特别是有时候从外部收集到的表格,总有人喜欢使用合并单元格!...让我们看看用VBA如何来实现一个快速定位合并单元格的功能,效果: ?...并填充文本" onAction="rbbtnUnMergeRange" imageMso...而这个变化,其实只要选择的单元格中含有合并单元格就会出现,所以根据这个特性,我们去查找VBA中对应的这种属性,其实就是MergeCells属性,点击F1查看官方文档: 如果区域内包含合并单元格,此属性的值为...Selection.MergeCells 如果选中的是合并单元格,返回True 如果选中的不含合并单元格,返回False 如果选中的单元格中,既有合并单元格、又有正常的非合并单元格,返回Null 根据返回

    2.4K20

    Excel宏教程 (宏的介绍与基本使用)

    除此之外,使用 VBA语言还有如下优点:1、VBA是一种通用程序语言,通过它不仅可以共享Microsoft相关的各种软件(如excel、 word、access)……,而且随着其它的一些软件(如大名鼎鼎的...AutoCAD2000)等对VBA的支持,这些软件也已进入到了VBA的控制范 围;2、可以将用VBA编写的程序复制到Visual Basic中调试并运行,从而实现用Visual Basic来控制有关的应用程序...利用Rows、Column可以获得区域中第一块的第一行行号、第一列列号,所得值均以十进制数表示。...$A$1:$A$6)” 5、避免循环引用 在上述公式赋值过程中,应避免在公式中引用被赋值的单元格,防止循环引用错误。...6、添加批注 可按如下方法格给单元格添加批注: Dim 批注文本 As String 批注文本=”批注示例” ‘准备批注文本 ActiveCell.AddComment ‘添加批注 ActiveCell.Comment.Text

    12.7K10

    文科生也能学会的Excel VBA 宏编程入门(三)——合并文件

    虽然复制粘贴大法好,但如果让你汇总几十人填报的个人信息并做成汇总表格,估计你也膜不动了。因此,这一次我们就通过VBA程序完成这个任务,从此妈妈再也不担心我数数到头秃。...程序基本思路 将要合并的Excel文件放到同一个文件夹中; 在文件夹中新建一个Excel文件用于汇总并运行VBA程序; 通过VBA程序获取这个文件夹中所有文件的路径; 依次通过程序自动打开各个文件,并将数据复制粘贴到汇总表中...文件并不保存,用True就是关闭并保存 End If fileName = Dir '这里不给Dir函数传参数会自动使用上面传过的参数,并返回符合要求的下一个文件路径...Dir函数会按文件在文件夹中的实际排序依次返回这两个文件的文件名,也是说你第一次调用Dir("D:\Sync\文档\合并文件\*.xlsx")的时候返回1.xlsx,后面直接调用Dir会返回2.xlsx...获取最后一行行号的方法有很多,各有优缺点,可以参考这篇文章。 在用于汇总的Excel文件里点击绿色小三角运行宏,或者点击【宏】找到这个宏并执行都可以运行这段程序。

    6.5K30

    简单的Excel VBA编程问题解答——完美Excel第183周小结

    IIf函数评估条件,如果为True,则返回一个值;如果为False,则返回另一个值。 9.如何确保Do... Loop语句中的语句至少执行一次? 仅当条件置于循环末尾时,才能保证语句至少执行一次。...Next循环中放入多少条Exit For语句? 没有限制。 12.Function过程与Sub过程有何不同? Function过程会向程序返回一个值,而Sub过程则不会。...19.哪两个函数用于搜索文本(在另一个字符串中查找一个字符串)? InStr函数和InStrRev函数。 20.如何转换字符串,以使每个单词的首字母大写,而所有其他字母小写?...完美Excel微信公众号本周内容 在完美Excel公众号中,本周推出的内容清单如下: 一些基本的Excel VBA编程问题,答案来了 Excel小技巧66:快速求和 Excel实战技巧92:快速获取指定目录下所有文件清单...简单的Excel VBA编程问题又来了,你能答出来吗?

    10.8K20

    用VBA实现Excel函数01:VLOOKUP

    很多学习VBA的应该都是在使用了一段时间的Excel之后,想弥补一些Excel本身的不足、或者是实现一些自动化操作。...函数是Excel里非常重要的一个功能,所以,我们结合Excel的函数,用VBA去实现一些常用的函数功能。...1、实现简单的VLOOKUP 提到Excel的函数,VLOOKUP函数应该是最为常用的一个查找函数了,一般我们都是使用它的精确查找功能,也就是第4个参数设置为0或者false,所以我们也只实现一个精确查找的函数...要实现这个功能,最简单的自然是用lookup_value与table_array里的第一列一个一个的比对,找到了相同的就返回col_index_num列的值,那显然这里需要用到For循环,循环需要1个范围...我们继续完善一下,没有找到需要的值的时候,我们让它返回#N/A,所以,我们只需要在For循环之后加上一条语句: MyVlookup = "#N/A" 因为一旦找到了查找的值,For循环内部就会Exit

    10.7K31

    Excel VBA之Find

    Excel VBA之Find expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase,...该表达式返回一个 Range 对象。 What Variant 类型,必需。要搜索的数据。可为字符串或任意 Microsoft Excel 数据类型。 After Variant 类型,可选。...dd_test() ‘’’’’查找***工作表中含有” 金额合计”的单元格所在的行号 Set ng = Sheets("在编绩效").Cells.Find("金额合计", , , ,1) MsgBox...1).Row MsgBox "编外工资-金额合计:" & Sheets("编外工资").Cells.Find("金额合计", , , ,1).Row ‘’’’’’’’’’’’’’’’’’’’’’’’查找工作表中最大的行号可最大的列号...===有时用以下代码==【收藏】 ’’’’’’’’’’’’’’’’’’’’查找A列的最后一行号或第一行最后一列号 MsgBox "A列最后1行:" & Range("A1048576").End(xlUp

    3.7K20

    Excel实战技巧55: 在包含重复值的列表中查找指定数据最后出现的数据

    图1 下面,我们分别使用公式和VBA来解决。...TRUE,不相同则返回FALSE,得到一个由TRUE和FALSE组成的数组,然后与A2:A10所在的行号组成的数组相乘,得到一个由行号和0组成的数组,MAX函数获取这个数组的最大值,也就是与单元格D2中的值相同的数据在...A2:A10中的最后一个位置,减去1是因为查找的是B2:B10中的值,是从第2行开始的,得到要查找的值在B2:B10中的位置,然后INDEX函数获取相应的值。...组成的数组,由于这个数组中找不到2,LOOKUP函数在数组中一直查找,直至最后一个比2小的最大值,也就是数组中的最后一个1,返回B2:B10中对应的值,也就是要查找的数据在列表中最后的值。...Cells(i, ColNum) Exit Function End If Next i End With End Function 然后,在工作表中像Excel

    16.4K20

    Excel揭秘22:其实可以在编写VBA代码时直接添加行号

    如下面的测试代码,我在输入代码时也手动添加了行号: Sub AddLineNo() 1 Dim str As String 2 str = "完美Excel" 3 MsgBox str End Sub...当然,有一些插件,可以自动给VBA代码添加行号,如果你需要这个功能的话,可以搜索一下,看有没有合适的。 那么,添加行号有什么用处呢?我认为最大的用处之一就是在代码调试时可以迅速定位到出错的代码语句。...在VBA中,有一个名为Erl的函数,可以用于返回发生错误的语句所在的行号。...如下面的代码所示: Sub testAddLineNo() 1 On Error GoTo errH Dim i As Long 2 i = "完美Excel" Finish: 3 Exit...图2 注意,如果代码没有添加行号,Erl函数将返回0。 欢迎分享本文,转载请注明出处。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    2.8K10

    Excel实战技巧86:从下拉列表中选择并显示相关的图片和文字说明

    在《Excel实战技巧22:在工作表中查找图片(使用VBA代码)》中,使用VBA代码来达到根据名称显示相应图片的效果。...如下图1所示,在《Excel实战技巧85:从下拉列表中选择并显示相关的图片》的工作表示例中,添加了图片文字说明。 ?...图2 在单元格G3的位置,插入一个文本框。选取该文本框,在公式栏中输入: =G3 将文本框与单元格G3链接,如下图3所示。 ?...图4 相关文章: Excel实战技巧15:在工作表中查找图片 Excel实战技巧21:在工作表中查找图片 Excel实战技巧22:在工作表中查找图片(使用VBA代码) Excel实战技巧85:从下拉列表中选择并显示相关的图片...欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。 完美Excel社群2020.9.9动态 #Excel VBA解读之用户窗体00# 写在前面的话

    8.8K20
    领券