标签:VBA 下面的VBA自定义函数演示了如何对应用了粗体格式的单元格求和。...在VBE中,插入一个标准模块,在其中输入下面的代码: Public Function SumBold( _ ParamArray vInput() As Variant) As Variant...,不会触发任何事件;而使用Application.Volatile语句,每当在工作表上的内容更改时,单元格都会重新计算。...这意味着,仅对求和单元格区域中的单元格设置加粗格式,使用该自定义函数求和的值不会改变,除非按F9键强制计算,或者在工作表中输入内容导致工作表重新计算。...这个程序也提供了一个模板,可以稍作修改对其它格式设置的单元格来求和
学习Excel技术,关注微信公众号: excelperfect 下面的自定义函数使用Shapes集合对象的AddShape方法及其参数,可以在指定的单元格中插入指定的形状。...( _ ShapeType, _ .Left, .Top, .Width, .Height) End With End Function 代码中的参数...参数sAddress指定要添加形状的单元格,字符串形式,例如要在单元格B3中添加形状,则指定参数sAddress的值为B3。...示例 如下图1所示的工作表,列A中是代表形状的常量名,列B中是对应的常量值。 ?...图1 下面的代码在列C中添加对应的形状: Sub AddShape() Dim shp As Shape Dim rng As Range For Each rng In
标签:Word VBA 可以使用VBA代码来判断文档中表格内的单元格是否为空。下面的代码检查所选文档内容中表格内的单元格,并给出空单元格的信息。...方法1 基于空单元格由Chr(7)跟随的段落标记组成,可以使用Range对象检测空单元格,代码如下: Sub CheckTableCells() Dim rngCell As Cell...End If Next rngCell Next rngRow End Sub 方法2 使用Range变量,将其设置为标记每个单元格的区域,移动到区域的末端,使单元格末端标记和段落标记不包含在区域中...(要执行此操作,只需将其移动一个字符),并获取区域内的文本。...End If Next rngCell Next rngRow End Sub 方法3 下面的代码与方法1类似,只是在给出空单元格信息之前先选择该单元格。
VBA在多个文件中Find某字符的数据并复制出来 今天在工作中碰到的问题 【问题】有几个文件,每个文件中有很多条记录,我现在要提取出含有“名师”两个字符的记录。...文件如下: 【常规做法】打开文件--查找---复制---粘贴---关闭文件,再来一次,再来一次 晕,如果文件不多,数据不多那还好,如果文件多,每个文件的记录也很多,那就是“加班加班啦” 【解决】先Application.GetOpenFilename...,把找到的数据整行复制出来就可也。...完成一个文件,再找开一个文件…… 【VBA代码】 SubGetFile_Find_FindNext() Dim fileToOpen, x, total_file_path, m,title_row...Excel Files (*.xls*), *.xls*", , "打开文件", , True) If TypeName(fileToOpen) ="Boolean" Then MsgBox "你选择了
学习Excel技术,关注微信公众号: excelperfect 在Excel中,我们可以使用“分列”功能(即“文本到列”),很容易地将单元格中带有特定分隔符的文本拆分到不同的列中。...但是,对于使用组合键换行的文本,不能够使用这个功能。例如,下图1所示的单元格中的数据,想要将其拆分到不同的列中,“分列”功能对其无效。...图1 我们可以使用一段VBA代码来实现。 下面的VBA代码将当前单元格中以换行符分隔的文本拆分到其相邻单元格中,如下图2所示。...首先,使用Chr(10)作为分隔符拆分当前单元格中的内容。...然后,将拆分的值放置到当前单元格相邻的单元格区域中。
学习Excel技术,关注微信公众号: excelperfect 如果有一个依赖于一些计算慢的资源的用户定义函数,可能希望该用户定义函数在大多数情况下只返回其占用的单元格中最后一次计算得到的值,并且只偶尔使用计算慢的资源...假设要给用户定义函数传递一个计算慢的资源的参数,并让一个开关告诉它何时使用计算慢的资源。...可以设置开关(这里使用称为“RefreshSlow”的已定义名称)并在VBA过程中刷新用户定义函数,如下所示: Sub RefreshUDFs() Dim lCalcMode As Long...因此,如果单元格被格式化为带有2个小数位的数字,则检索到的值将被截断为2个小数位。...小结 有几种方法可以从VBA用户定义函数的最后一次计算中获取先前的值,但最好的解决方案需要使用C++ XLL。
excelperfect Q:如何在指定单元格中根据条件查找内容,并将找到的内容输入到相邻单元格中?...例如,在单元格A1中的内容为“This is a test”,单词“just”位于一对尖括号中。...现在想要将“just”提取出来,并将其放置在相邻的单元格B1中,如何使用VBA代码来实现这样的操作?...A:可以使用VBA中的InStr函数来查找左尖括号“”的位置,然后使用Mid函数来提取尖括号之间的内容。当然,可以使代码更简单一些,使用Like运算符和Split函数。...A1开始的列A中,提取后的字符放置在相邻的列B中对应的单元格中。
标签:VBA 这段代码自forum.ozgrid.com搜集,可以将指定的单元格区域转换成Web网站中的表格代码,供有兴趣的朋友参考。...]" Next BB_Cells Debug.Print "[/tr]" Next BB_Row Debug.Print "[/table]" End Sub 例如,如果要将当前工作表单元格区域...A1:D3转换成网站表格代码,测试代码如下: Sub test() Create_Web_Table Range("A1:D3"), True End Sub 这会在立即窗口中生成网页表格的代码。...然后,将立即窗口中生成的Web代码粘贴到所需要的地方。
学习Excel技术,关注微信公众号: excelperfect 很多时候,我们都可能想要对每隔n行中的单元格求和,其中n是一个整数。如下图1所示,每隔1行求和、每隔2行求和、每隔3行求和,等等。 ?...图1 从图1的示例可知,如果我们每隔1行求和,有求奇数行或者偶数行的单元格之和两种情况,其中,奇数行求和的数组公式为: =SUM(IF(MOD(ROW($A$1:$A$15),2)=1,$A$1:$A$15,0...)) 偶数行求和的数组公式为: =SUM(IF(MOD(ROW($A$1:$A$15),2)=0,$A$1:$A$15,0)) 注意,本文中的公式都是数组公式,也就是说,在公式输入完成后要按Ctrl+Shift...对于每隔2行求和,即求第1、4、7、10、13行中单元格之和,使用数组公式: =SUM(IF(MOD(ROW($A$1:$A$15),3)=1,$A$1:$A$15,0)) 对于每隔3行求和,即求第1、...5、9、13行中的单元格之和,使用数组公式: =SUM(IF(MOD(ROW($A$1:$A$15),4)=1,$A$1:$A$15,0)) 我们可以得到一个规律,对于每隔n行求和(n>1),其一般公式
excelperfect Q:我有一个工作表,在单元格B1中输入有数值,我想根据这个数值动态隐藏行2至行100。...具体地说,就是在工作表中放置一个命令按钮,如果单元格B1中的数值是10时,当我单击这个命令按钮时,会显示前10行,即第2行至第11行;再次单击该按钮后,隐藏全部的行,即第2行至第100行;再单击该按钮,...注:这是在chandoo.org的论坛上看到的一个贴子,有点意思。...A:使用的VBA代码如下: Public b As Boolean Sub HideUnhide() If b =False Then Rows("2:100").Hidden...,然后将该按钮的单击事件关联上述VBA程序,例如: Private Sub cmdButton_Click() HideUnhide End Sub 完成!
在VBA代码中,经常要引用单元格数据区域并对其进行操作。然而,如果对数据区域采用“硬编码”地址,那么当该区域大小变化时,必须修改相应的引用该区域的代码。...本文整理了可以动态引用数据区域的5种方法,供编写代码时参考。 方法1:使用UsedRange属性 工作表对象的UsedRange属性返回一个Range对象,代表工作表中已使用的单元格区域。...注意,如果第一行的最后一个单元格或者第一列的最后一个单元格为空,则本方法不会选择到正确的单元格区域。因此,本方法适用于数据区域的第一列在最后一行有值且第一行在最后一列有值的区域。...使用SpecialCells方法来查找工作表中包含数据的最后一个单元格。...找到后,使用该单元格引用来确定最后的数据行和列。
标签:VBA 我们可以使用VBA代码来获取单元格背景色中的RGB值,如下图1所示。 图1 列B、C、D中的单元格值就是列A中相应单元格背景色的RGB值。...下面是将单元格背景色拆分成RGB数字表现形式的自定义函数: Function Red(rng) As Long Dim c As Long Dim r As Long c = rng.Interior.Color...b As Long c = rng.Interior.Color b = c \ 65536 Mod 256 Blue = b End Function 这样,如上图1所示,在单元格...B2中输入: =Red(A2) 在单元格C2中输入: =Green(A2) 在单元格D2中输入: =Blue(A2) 就会得到单元格A2的背景色相应的RGB值。...如果在其他应用中我们要选择背景色,但却不知道其RGB值,那么就可以先在Excel单元格中设置想要的背景色,然后使用这几个函数获取其RGB值,这样就可以应用到其他程序中了。
VBA汇总文件夹中的多文件的工作表中不同单元格区域到总表 【问题】我们发了这样一个表格到各单位收集资料,各单位填写完后上交上来有许多个文件,我们现在想汇总成一年一个表,怎么办?...◆表格是先设定后的一样的格式 ◆收上来后有很多个文件 ◆我们想汇总成这样的“一年一个汇总表” 【难点】正常的做法是一个文件打开---复制2016年的—粘贴………再复制2017年的—粘贴…………再复制...那就加班,再加班 【解决问题】我们的口号是VBA使工作效率提高,不加班 ====【代码】==== Sub 提取多文件一工作表中不同区域汇总() Dim fileToOpen, x, total_file_path...用Application.GetOpenFilename打开一个选择文件的对话框,可以多选,把选择的文件存入到fileToOpen的数据中 2.循环数组, 3.打开一个文件,并复制全部的区域,到指定的2016...-2018的表格中,下一次的复制,复制到最后的一行中的A列中, 4.因为在打开文件的过程中可能有些人在传输文件中,文件损坏了,所以加上On Error Resume Next,不报错继续运行。
标签:VBA,自定义函数 如下图1所示,在单元格A1中包含多行文本,现在要求删除这些文本中开头单词相同的行,仅保留第1行,结果如图1单元格B1中所示。...图1 可以使用VBA编写一个自定义函数来实现。...val, Len(val) - 1) End If fnUnique = val Set dict = Nothing Set dOut = Nothing End Function 在单元格...B1中输入公式: =fnUnique(A1) 然后,选取单元格B1,单击功能区“开始”选项卡中的“自动换行”按钮,即可获得结果。...注:本文示例收集自vbaexpress.com,供有兴趣的朋友研究。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
复制粘贴可能是Excel中最常见的操作,不然Microsoft怎么会把它们放置在最显眼显顺手的位置。当然,使用Excel VBA时,复制操作单元格区域是一项基本技能。...Excel功能区中的复制命令 在使用VBA代码复制单元格区域之前,看看Excel功能区中的“复制”按钮命令。...在Excel中手工复制单元格区域操作时,使用Ctrl+C快捷键,该单元格区域被复制到剪贴板。在VBA中,使用Range.Copy方法做同样的事情。...为了在使用VBA时控制在特定目标单元格区鞓内复制的内容,必须了解Range.PasteSpecial方法。...注意,这些参数对应图7“选择性粘贴”对话框的各个部分和选项,“粘贴链接”按钮除外。 参数Paste允许指定实际粘贴的内容,大致相当于“选择性粘贴”对话框中的“粘贴”部分。
excelperfect 标签:Excel技巧 有时,我们不希望在形状中只是使用静态文本,例如想要显示计算的结果,该如何操作? 很简单! 如图1所示,想要在圆中显示动态的时间。...图1 选择形状圆,单击公式栏,输入=A1。按下回车键,此时单元格A1中的值就会显示在圆中。当更新单元格A1中的值时,形状圆中的值也会跟着更新。如下图2所示。...图2 这里,公式栏中的公式只能引用单个单元格,不能在公式栏中输入公式。然而,有一个变通办法。假设想在某形状中显示列表值之和。并且形状在工作表的第1行到第4行中显示。...公式可能是: ="今天的总计: " & CHAR(10) & TEXT(SUM(A1:A6), "¥#,##0") 2.然后将形状移回原位,选择该形状并输入公式:=C2,设置适当的格式,结果如下图3所示...图3 注意,这种方法设置的形状中文本的更新仅当工作表重新计算时才更新。 假设在图表中添加了一个形状,如果希望形状中的文本来自单元格,则必须在单元格引用之前加上工作表名称。例如,=Sheet1!
excelperfect 在《VBA实战技巧19:根据用户在工作表中的选择来隐藏/显示功能区中的剪贴板组》中,我们讲解了根据用户在工作表中的选择来决定隐藏或者显示功能区选项卡中的特定组的技术。...现在,我们需要用户在不同的工作表中选择不同的区域时,禁止用户执行复制、剪切、粘贴操作。...例如,当用户选择工作表Sheet1列A中的单元格时,不能执行复制、剪切、粘贴操作,同样在选择工作表Sheet2中B2:B15区域时和工作表Sheet3中的列B、列C中的单元格时,也不能执行复制、剪切、粘贴操作...图1:当用户选择的不同工作表中指定的单元格时,不能执行复制、剪切、粘贴操作 首先,我们新建一个工作簿并保存。...End Sub 双击工程资源管理器中的ThisWorkbook模块,在该模块代码窗口中输入下面的代码: Private Sub Workbook_Open() '设置当前选取的单元格的复制粘贴状态
前言 在C#开发中,处理Excel文件是一项常见的任务。...在处理Excel文件时,经常需要对单元格进行样式设置,在此博客中,小编将重点介绍如何使用葡萄城公司的服务端表格组件——GrapeCity Documents for Excel(以下简称GcExcel)...RichText 控件 GcExcel 支持在单元格中应用富文本格式。富文本格式允许使用不同的颜色、字体、效果(粗体、下划线、双下划线、删除线、下标、上标)等在单元格中设置文本样式。...在 Excel 中,若要在单元格中包含富文本,请在编辑模式下输入单元格,然后选择文本的一部分以应用单独的格式,如下所示: 使用 GcExcel,可以使用 IRichText 和 ITextRun 对象配置...条件格式 在工作表中,Excel 允许用户对单个或一系列单元格创建条件格式规则,使单元格、行、列或整个工作表中的数据自动应用不同的格式。
经常用Excel的人,应该会经常需要把Excel里的数据复制到Word等其他软件中,复制过去经常会碰上格式上的问题。...默认从Excel中复制的数据,(如果是复制到Word这类支持表格的软件,会复制表格过去,这个时候还可以进一步转换为文本),列与列之间是使用Tab连接,上一行与下一行是使用换行符连接。... " size="large" supertip="复制并连接单元格的Text。"...> 1 Then '选择的单元格范围的行数 iRows = rng.Rows.Count '选择的单元格范围的列数...Next '将列单元格的Text连接起来,并存放到arrStr中 arrStr(iRow) = VBA.Join
VBA允许用户以多种不同的方式引用单元格区域。 什么是Range对象 Range对象代表工作表中的单元格区域,这意味着可以使用Range对象来引用: 单个单元格 一行或一列单元格。...选择的单元格,无论它们是否连续 三维单元格区域 从上面可以看出,Range对象的大小可能会有很大差异,你可以只引用单个单元格,也可以引用Excel工作表中的所有单元格。...尽管在引用特定Excel工作表中的单元格时具有这种灵活性,但Range对象还是有一些限制。...特别是,这里并没有指定所引用的特定Excel工作簿或工作表。为此,必须理解下面的内容。 从集合中引用对象 在VBA中,对象集合是一组相关的对象。...该选择区域是一个Range对象。 由于Selection对象表示文档中当前选定的区域,因此上面的引用返回单元格C3。它不会返回单元格A1。
领取专属 10元无门槛券
手把手带您无忧上云