标签:VBA,工作表事件 当你想要随着工作表变化而让Excel自动做一些事情的时候,工作表事件是最能帮助你的了。之前的文章中,介绍过很多与工作表事件相关的基础知识和应用案例,今天再来一个示例。...当某单元格中的值修改后,其所在的工作表名称也相应修改为该单元格中的值。...= "A1" Const strERROR As String = "在单元格中是无效的工作表名称" Dim strSheetName As String With Target If...以单元格A1中的数据为工作表名称,即用户在单元格A1中输入数据后,按下回车键,工作表名称即修改为单元格A1中的内容。...你可以根据需要修改关联单元格为你想要的单元格。
标签:VBA 下面的VBA自定义函数演示了如何对应用了粗体格式的单元格求和。...ErrHandler: '检查是否溢出 If Err.Number = 6 Then SumBold = CVErr(xlErrNum) Resume Continue End Function 注意,当求和的单元格区域中单元格格式发生更改时...,不会触发任何事件;而使用Application.Volatile语句,每当在工作表上的内容更改时,单元格都会重新计算。...这意味着,仅对求和单元格区域中的单元格设置加粗格式,使用该自定义函数求和的值不会改变,除非按F9键强制计算,或者在工作表中输入内容导致工作表重新计算。...这个程序也提供了一个模板,可以稍作修改对其它格式设置的单元格来求和
excelperfect Q:这个问题很奇怪,需要根据在工作表Sheet1中输入的数值高亮显示工作表Sheet2中相应的单元格。...具体如下: 在一个工作簿中有两个工作表Sheet1和Sheet2,要求在工作表Sheet1中列A的某单元格中输入一个值后,在工作表Sheet2中从列B开始的相应单元格会基于这个值高亮显示相应的单元格。...例如,在工作表Sheet1的单元格A2中输入值2后,工作表Sheet2中从单元格B2开始的两列单元格将高亮显示,即单元格B2和C2高亮显示;在工作表Sheet1的单元格A3中输入值3,工作表Sheet2...中从B3开始的三列单元格将高亮显示,即单元格B3、C3和D3加亮显示,等等。...图1:在工作表Sheet1中输入数值 ? 图2:在工作表Sheet2中的结果 A:可以使用工作表模块中的事件来实现。
标签:VBA,工作表事件 当工作表单元格中的值被修改后,我需要将修改前的值放置到其右侧单元格中。例如,单元格A1中输入有数值1,当我将其内容修改为2之后,之前的数值1被放置到单元格B2中。...可以使用工作表Change事件来实现。...A1中重新输入值时,原值会自动放置到单元格B1中。...当一列单元格区域中的值发生改变时,需要将修改之前的值放置到相邻列对应单元格中,例如对于单元格区域A1:A10,其值发生改变时,原来的值会自动放置到单元格区域B1:B10对应的单元格中。...仍然使用工作表Change事件来实现。
标签:VBA 将某工作表中的格式转换到另一个工作表 示例代码: Sub TransferFormat() '源格式工作表 Dim sht1 As Worksheet '要应用格式的工作表 Dim...xlPasteFormats '给新工作表命名 sht2.Name = "New" End Sub 选择单元格 有多种方法可供挑选,看你的喜好或所用的环境。...例如,选择当前工作表单元格D5: ActiveSheet.Cells(5, 4).Select 或者: ActiveSheet.Range("D5”).Select 选择另一个工作表中的单元格E6: Application.Goto...: Sheets("Sheet2").Activate ActiveSheet.Cells(6, 5).Select 选择当前工作表中的单元格区域C2:D10: ActiveSheet.Range(Cells...Range(Cells(2, 3), Cells(10, 4)).Select 选择另一个工作表中的单元格区域D3:E11: Application.Goto ActiveWorkbook.Sheets
VBA汇总文件夹中的多文件的工作表中不同单元格区域到总表 【问题】我们发了这样一个表格到各单位收集资料,各单位填写完后上交上来有许多个文件,我们现在想汇总成一年一个表,怎么办?...那就加班,再加班 【解决问题】我们的口号是VBA使工作效率提高,不加班 ====【代码】==== Sub 提取多文件一工作表中不同区域汇总() Dim fileToOpen, x, total_file_path...用Application.GetOpenFilename打开一个选择文件的对话框,可以多选,把选择的文件存入到fileToOpen的数据中 2.循环数组, 3.打开一个文件,并复制全部的区域,到指定的2016...-2018的表格中,下一次的复制,复制到最后的一行中的A列中, 4.因为在打开文件的过程中可能有些人在传输文件中,文件损坏了,所以加上On Error Resume Next,不报错继续运行。...原因是:初值中是.Range("a5:t11"),想要组合进行的也是.Range("a5:t11"),所以程序是不可以的。
excelperfect Q:我有一个工作表,在单元格B1中输入有数值,我想根据这个数值动态隐藏行2至行100。...具体地说,就是在工作表中放置一个命令按钮,如果单元格B1中的数值是10时,当我单击这个命令按钮时,会显示前10行,即第2行至第11行;再次单击该按钮后,隐藏全部的行,即第2行至第100行;再单击该按钮,...A:使用的VBA代码如下: Public b As Boolean Sub HideUnhide() If b =False Then Rows("2:100").Hidden...EntireRow.Hidden = False Application.Goto Range("A1"), True b =False End If End Sub 在工作表中放置一个命令按钮...,然后将该按钮的单击事件关联上述VBA程序,例如: Private Sub cmdButton_Click() HideUnhide End Sub 完成!
标签:VBA 运行下面的VBA过程,将列出当前工作表中所有合并单元格的地址。程序会新建一个工作表并重命名,然后在其中输入所有合并单元格的地址。...On Error GoTo SafeToContinue Sheets(MySheet & "中的合并单元格").Select MsgBox "工作表 " & MySheet & "中的合并单元格...ActiveSheet.Name = MySheet & "中的合并单元格" NewSheet = ActiveSheet.Name Range("A1") = "合并单元格列表" ' 返回目标工作表...Sheets(MySheet).Select '查找合并的单元格并将其地址写入新工作表 For r = 1 To LastRow For c = 1 To LastColumn..." & MySheet & " 中没有找到合并单元格."
学习Excel技术,关注微信公众号: excelperfect 如果有一个依赖于一些计算慢的资源的用户定义函数,可能希望该用户定义函数在大多数情况下只返回其占用的单元格中最后一次计算得到的值,并且只偶尔使用计算慢的资源...GetSlowResource(vParam) End If End Function Application.Caller.Text 如果使用Application.Caller.Text,则不会获得循环引用,但会检索单元格中显示为字符串的格式化值...因此,如果单元格被格式化为带有2个小数位的数字,则检索到的值将被截断为2个小数位。...,因此下次打开工作簿时,检索到的值将为“空白/零”。...小结 有几种方法可以从VBA用户定义函数的最后一次计算中获取先前的值,但最好的解决方案需要使用C++ XLL。
这里将编写VBA代码,用来删除工作表指定区域中的错误值,这在很多情况下都很有用。 如下图1所示,有一组数据,但其中有一些错误值,我们想要自动删除这些错误值。 ?...图1 删除错误值的数据表如下图2所示。 ? 图2 如果不使用VBA,可以使用Excel的“定位”功能来实现。...图3 单击“确定”后,工作表中的错误数据单元格会被选择,单击“Delete”键,删除错误值,结果如上图2所示。...函数来判断单元格中是否是错误值,如果是,则设置该单元格为空。...这段代码虽然相对长一些,但相比较前面的两种方法,可以自动在错误值单元格中输入内容。
在一些应用场景中,我们可能会需要根据工作表中的数据来创建用户窗体中的控件。例如下图1所示,在工作表第3行中有一行标题数据,想要根据标题数量在用户窗体中创建标签和相应的文本框。...图2 在该用户窗体中单击右键,选择“查看代码”命令,输入下面的代码: Private Sub UserForm_Initialize() Dim rngData As Range Dim...例如,用户在文本框中输入内容后,自动输入到工作表中;清空文本框中的内容;等等。
本文将给出一段VBA代码,从非连续的单元格区域复制值并粘贴到另外指定的单元格区域。 如下图1所示,将右侧两个单元格区域的数据复制到左侧的两个单元格区域中。 ? 图1 下图2是粘贴数据后的结果。 ?...图2 如果我们直接同时复制右侧两个区域中的数据,由于Excel不允许对多重选择区域执行复制操作,会弹出如下图3所示的提示信息。 ? 图3 看来并不如想像的那样简单!但是,我们可以使用VBA来完成。...首先定义数据区域名称和要复制到的区域的名称。 如下图4所示,将单元格区域H2:K4和G7:J9定义名称为“copyrng”。 ?...1 To i Range("pasterng").Areas(j).Value =Range("copyrng").Areas(j).Value Next End Sub 代码中,...Range("pasterng").Address返回代表引用的单元格区域地址的字符串,多个区域中间使用“,”隔开,而其中“:”号的个数就是引用的单元格区域数,所以代码: Len(strAddress)
标签:Word VBA 可以使用VBA代码来判断文档中表格内的单元格是否为空。下面的代码检查所选文档内容中表格内的单元格,并给出空单元格的信息。...方法1 基于空单元格由Chr(7)跟随的段落标记组成,可以使用Range对象检测空单元格,代码如下: Sub CheckTableCells() Dim rngCell As Cell...End If Next rngCell Next rngRow End Sub 方法2 使用Range变量,将其设置为标记每个单元格的区域,移动到区域的末端,使单元格末端标记和段落标记不包含在区域中...(要执行此操作,只需将其移动一个字符),并获取区域内的文本。...如果单元格为空,则区域内没有文本。
标签:VBA 如下图1所示,在工作表Sheet1中有一系列人员信息数据,包括人员照片、姓名、年龄,等。 图1 现在,要根据这些人员信息来给每个人制作信息卡片,模板如下图2所示。...图2 可以使用VBA来自动完成。...图3 注:本示例整理自vbaexpress.com论坛,供有兴趣的朋友研究参考。
学习Excel技术,关注微信公众号: excelperfect 在Excel中,我们可以使用“分列”功能(即“文本到列”),很容易地将单元格中带有特定分隔符的文本拆分到不同的列中。...但是,对于使用组合键换行的文本,不能够使用这个功能。例如,下图1所示的单元格中的数据,想要将其拆分到不同的列中,“分列”功能对其无效。...图1 我们可以使用一段VBA代码来实现。 下面的VBA代码将当前单元格中以换行符分隔的文本拆分到其相邻单元格中,如下图2所示。...首先,使用Chr(10)作为分隔符拆分当前单元格中的内容。...然后,将拆分的值放置到当前单元格相邻的单元格区域中。
标签:VBA,ActiveX控件 如下图1所示,工作表中有一个名为“TextBox1”的文本框,要将其中输入的数字放置到工作表单元格B8中并转换成日期格式。...Sheet3") .Cells(8, 2) = Format(.OLEObjects("TextBox1").Object.Value, "yyyy-mm-dd") End With 反之,如果要想工作表中的文本框显示单元格中的日期...在实际应用开发中,万一碰到这种情况,就可以有现成的代码参考了。...看着有点简单,但主要是理解工作表中的ActiveX控件是如何进行引用的,文本框控件中的值是如何转换格式的,既可以熟悉ActiveX控件在VBA中的属性使用,也增加了处理类似情形的经验。
学习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
今天把学习的源文件共享了出来,供大家学习使用 上次想到要学习这个 结合网友也提出意见,做一个,如果有用,请下载或复制代码使用 【问题】我们在工作中有时要在某个文件(工作簿)中查找一些数据,提取出来...想要做好了以后同样的工作就方便了 【想法】 在一个程序主控文件中 设定:数据源文件(要在那里查找的工作簿) 设定:目标文件(要保存起来的那个文件) 输入你要查找的数据:如:含有:杨过,郭靖的数据。...要复制整行出来 主控文件设定如图 数据源文件有两个工作表 查找到"郭靖"的数据保存到目标文件的【射雕英雄传】工作表 查找到"杨过"的数据保存到目标文件的【第一个】工作表 【代码】 Sub...从一个工作簿的某工作表中查找符合条件的数据插入到另一个工作簿的某工作表中() Dim outFile As String, inFile As String Dim outWb As...MsgBox ("一个也没找到") End If '==end=工作表内部
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网站中的表格代码,供有兴趣的朋友参考。.../td]" 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代码粘贴到所需要的地方。
领取专属 10元无门槛券
手把手带您无忧上云