标签:VBA 有时候,我们想将工作簿中的每个工作表都保存为一个单独的工作簿。 你可以使用下面的操作逐个保存工作表: 1.在工作表标签中单击右键。 2.选取“移动或复制…”命令。...3.选择“(新工作簿)”。 4.保存该工作簿。 图1 这样,有多少工作表,你就要操作上面的步骤多少次。 然而,如果存在很多个工作簿,这样的重复工作使用VBA是最合适的。...下面是代码: Sub SaveWorksheetsToWorkbook() Dim wks As Worksheet Dim strPath As String Dim strFileName...Next wks Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub 只需在要拆分的工作簿中运行上述代码...,就可将该工作簿中的所有工作表全部保存为单独的工作簿。
标签:VBA,类模块,用户窗体 这是在ozgrid.com中看到的一个工作簿,正如作者所说,也许不酷,也可能完全没有用,但这是用户窗体形式的鼠标键盘。如下图1所示。...图1 有兴趣的朋友,可以到ozgrid.com中下载该工作簿。也可以在完美Excel公众号中发送消息: 用户窗体键盘 获取该工作簿的下载链接。...或者,到知识星球App完美Excel社群中直接下载该工作簿。 这个用户窗体真是让人眼前一亮,但不知道它的用处在什么地方,如果有应用场景的,不妨留言或发消息给我,让我也开拓一下思路。...其实,我觉得这个工作簿的一个用处就是,可以研究其中的代码,包括类模块的实现形式,学习其编写代码的思路和方法,举一反三,将其应用到其他需要的编程场景中。 还有什么用处吗?
标签:VBA 要从关闭的工作簿中复制数据,有很多种方法,下面介绍最基本的一种方法。...假设要将一个工作簿中工作表Sheet2的单元格区域A1:B50的数据复制到当前工作簿的工作表Sheet1相应的单元格区域,可以使用下面的代码: Sub testCopyValueFromClosedWorkbook...wksThis.Range("A1:B50").Value = wksThat.Range("A1:B50").Value wbThat.Close False End If End Sub 代码的思路很简单...:打开选择文件对话框,选择要复制的数据所在的工作簿文件,然后打开该工作簿,将其中数据所在工作表相应单元格区域数据复制到当前工作簿相应工作表区域,然后关闭该工作簿。
标签:Python与Excel,合并工作簿 本文介绍使用Python向Excel主文件添加新数据的最佳方法。该方法可以保存主数据格式和文件中的所有内容。...在终端使用下面的命令安装: pip install xlwings 示例文件 本文用到了两个示例Excel工作簿: 主文件.xlsx 新数据.xlsx 可以到知识星球App完美Excel社群下载。...3.想要在每个工作表的最后一行下面的空行开始添加数据。如图2所示,在“湖北”工作表中,是在第5行开始添加新数据。 使用Python很容易获取所有Excel工作表,如下图3所示。...这里,要将新数据放置在紧邻工作表最后一行的下一行,例如上图2中的第5行。那么,我们在Excel中是如何找到最后一个数据行的呢?...图6 将数据转到主文件 下面的代码将新数据工作簿中的数据转移到主文件工作簿中: 图7 上述代码运行后,主文件如下图8所示。 图8 可以看到,添加了新数据,但格式不一致。
标签:VBA 这是不是将工作簿中的每个公式转换为值的最快、最有效的方法,请大家评判。 有趣的是,不管工作簿中有多少张表,它都是用一个操作来处理的。...Paste:=xlPasteValues ActiveSheet.Select Application.CutCopyMode = False End Sub 如果工作簿中有隐藏的工作表,则上面的代码不起作用...Dim Goahead As Integer Dim n As Integer Dim i As Integer Goahead = MsgBox("这将不可逆地将工作簿中的所有公式转换为值。....ScreenUpdating = True .EnableEvents = True .Calculation = calcState End With End Sub 还有更好的代码吗...注:本文代码整理自ozgrid.com,供有兴趣的朋友探讨。
有时候我们会遇到这种问题: 很多数据散落在很多工作表或者工作簿中,由于某项工作我们需要将这些数据做个汇总。...比方,我们有以下三个工作簿 这三个工作簿含有第一季度各品牌在各个国家的销售数据,又分为若干不等的工作表。...然后有一天我在ExcelHome论坛发现了版主写的一个神器,可以自动生成SQL语句,实现跨工作簿/工作表进行数据汇总透视。(点击阅读原文可以找到工具下载链接)下面介绍下该工具的使用方式。...可以看到 1.所有工作簿的所有工作表都显示在了左侧的列表里。这个时候我们可以选择部分工作簿/工作表进行汇总,也可以全选,看需求而定。此处我们全选。...点击更改数据源-链接属性,弹出以下对话框 将刚才复制的代码粘贴到“命令文本“中,点“确定“。
文章背景: 在工作中,有时需要将多个工作簿进行合并,比如将多份原始数据附在报告之后。...一般的操作方法是打开两个工作簿(目标工作簿和待转移的工作簿),然后选中需要移动的工作表,右键单击以后选择“移动或复制”。接下来在新的对话框里面进行设置。 这种方法适合在移动少量工作表的时候使用。...在目标工作簿内,插入一个模块,然后导入如下的代码: Option Explicit Sub MergeWorkbook() '将多个工作簿的第一张工作表合并到目标工作簿中...End Sub (1) 将目标工作簿和待转移的工作簿放在同一个文件夹内; (2)上述代码要实现的功能是,将同一个文件夹内所有工作簿(目标工作簿除外)的第一张工作表拷贝到目标工作簿内,并将表名设置为拷贝前所属的工作簿名称...转移前: 转移后: 参考资料: [1] 如何使用Excel VBA将多个工作簿的全部工作表合并到一个工作簿中(https://zhuanlan.zhihu.com/p/76786888)
标签:VBA,用户界面 前面3天,连续发表了: 在Excel中自定义上下文菜单(上) 在Excel中自定义上下文菜单(中) 在Excel中自定义上下文菜单(下) 分别详细讲解了使用VBA代码将控件添加到单元格上下文菜单...、使用RibbonX将控件添加到单元格上下文菜单、使用VBA代码或RibbonX将动态菜单添加到单元格上下文菜单,并给出了详细的步骤和代码及说明。...在文章的最后,还介绍了几个上下文菜单技术和技巧,包含为不同的用户创建不同的菜单、自动识别用户使用的语言从而设置菜单标题、找到上下文菜单名称等,你可以灵活使用这些技术,比如为不同的工作表创建不同的上下文菜单...在这里,放出文章配套的示例工作簿,包含带有VBA代码的3个工作簿,有兴趣的朋友可以下载后对照原文研究。
学习Excel技术,关注微信公众号: excelperfect 在文件夹中所有文件上运行宏,或者在Excel工作簿中所有工作表上运行宏,这可能是一种非常好的Excel自动化方案。...例如处理类似的数据工作簿文件并想要提取数据或转换该工作簿。下面给出了适用这种情况的一些VBA程序,这些程序代码整理自analystcave.com,供有兴趣的朋友参考。..." End Sub 这段代码完成下列操作: 1.在当前工作簿路径中打开“选择文件”对话框,要求选择一个用于存储所有文件的文件夹。...2.打开一个单独的Excel进程(应用程序),然后逐个打开每个文件。 3.使用要在每个打开的工作簿上运行的代码替换“在这里放置你的代码”部分。 4.每个打开的工作簿在关闭时不会保存所作的修改。..." End Sub 在工作簿所有工作表中运行宏 代码如下: '本程序来自于analystcave.com Sub RunOnAllWorksheets() Dim folderName As String
假设工作簿文件结构如下图1所示。 ? 图1 其中,在文件夹“要合并的工作簿文件”中,有3个示例工作簿文件“测试1.xls、测试2.xls、测试3.xls”,将它们合并到工作簿“合并.xls”中。...在“合并.xls”工作簿中,有三个工作表。其中,“设置”工作表中的单元格B2中的数据为每个工作簿中想要合并的工作表名,这里假设每个工作簿中的工作表名相同;单元格B3为要合并的数据开始的行号。 ?...图2 在“导入工作簿名”工作表中将放置合并的工作簿的名称。 “合并工作表”就是我们要放置合并的数据的工作表。...如果一切顺利,则合并数据完成,并弹出如下图5所示的信息。 ? 图5 我们可以查看结果。在“导入工作簿名”工作表中,列出了已经合并数据的工作簿名,如下图6所示。 ?...图6 在“合并工作表”工作表中,是合并后的数据,如下图7所示。 ? 图7 代码的图片版如下: ? ?
学习Excel技术,关注微信公众号: excelperfect 有两个工作簿,一个工作簿中存放着要查找并替换成的文本,如下图1所示,列A中是要查找的文本,将列A中查找到的文本替换成列B中相应的文本,例如...图1 另一个工作簿中是我们要替换其文本的工作簿,我们要在该工作簿所有工作表中查找上图1列A中的值并将找到的文本替成列B中的文本,如图2所示。 ? 图2 要实现的结果如下图3所示。 ?...在图1所示的工作簿中,打开VBE,插入一个标准模块,输入代码: '查找并替换指定工作簿中的多个文本 Sub MultiFindReplace() Dim ReplaceListWB As Workbook...).CurrentRegion '遍历要替换文本的工作簿中所有工作表 For Each wks In ReplaceInWB.Worksheets '使用替换文本来替换工作表中的数据...选择工作簿文件后,将根据上图1工作表中的文本自动对该工作簿中的文本进行查找和替换操作。 ? 图4 代码的图片版如下: ?
今天把学习的源文件共享了出来,供大家学习使用 上次想到要学习这个 结合网友也提出意见,做一个,如果有用,请下载或复制代码使用 【问题】我们在工作中有时要在某个文件(工作簿)中查找一些数据,提取出来...想要做好了以后同样的工作就方便了 【想法】 在一个程序主控文件中 设定:数据源文件(要在那里查找的工作簿) 设定:目标文件(要保存起来的那个文件) 输入你要查找的数据:如:含有:杨过,郭靖的数据。...要复制整行出来 主控文件设定如图 数据源文件有两个工作表 查找到"郭靖"的数据保存到目标文件的【射雕英雄传】工作表 查找到"杨过"的数据保存到目标文件的【第一个】工作表 【代码】 Sub...从一个工作簿的某工作表中查找符合条件的数据插入到另一个工作簿的某工作表中() Dim outFile As String, inFile As String Dim outWb As...Exit Sub End If ' 在找到唯一匹配项时继续查找
标签:VBA 下面的程序将在一个新工作表中列出当前工作簿中所有工作表中的公式,以及这些公式所有的工作表、单元格及值。...代码如下: Public Sub ListFormulasInWorkbook() Const SHEETNAME As String = "公式位于*" Const ALLFORMULAS As...ScreenUpdating .ScreenUpdating = False End With shCnt = 0 ListFormulasAddSheet formulaSht, shCnt ' 列出每个工作表中的公式...Const DATEFORMAT As String = "dd MMM yyyy hh:mm" Dim shtName As String With ActiveWorkbook ' 删除已存在的工作表并创建一个新的工作表...xlDouble .Weight = xlThick .ColorIndex = 5 End With End With End With End Sub 示例工作簿运行代码后的结果如下图
excelperfect 标签:VBA 这是在www.wimgielis.com中看到的一段代码,可以在工作表中自动添加一个矩形,用户可以指定矩形的大小和填充的颜色,以及指定相关联的宏。...VBA代码如下: Sub Add_Macro_Rectangle() Dim ws As Worksheet Dim sh...String On Error Resume Next Set ws = ActiveSheet sDimensions = Trim(Application.InputBox("请输入形状的大小...(行 x 列)", "形状大小", "3x3", , , , , 2)) iColor = Trim(Application.InputBox("请输入形状的颜色: 1 =蓝色, 2 =绿色, 3...(1) If Len(s) = 0 Then s = .OnAction sText = Trim(Application.InputBox("请输入形状中的文本", "形状文本", s
由于在2007 MicrosoftOffice系统中,Microsoft用功能区UI取代了命令栏菜单结构,这造成了创建在不同版本的MicrosoftOffice中工作的菜单的技术会有所不同。...本文使用一种有效的技术创建在所有Excel版本中都可使用的弹出菜单。 注意,内置或自定义上下文菜单不同于弹出菜单的一种方式是,上下文菜单仅在右键单击鼠标时显示,而弹出菜单可以在需要时显示。...在VBE中,单击“插入——模块”,在标准模块中的代码如下: Public Const Mname As String ="MyPopUpMenu" Sub DeletePopUpMenu() '...End Sub 回到Excel界面,按Alt+F8键,调出“宏”对话框,选择“CreateDisplayPopUpMenu”宏,单击“选项”按钮,在“宏选项”对话框中的“快捷键”中输入字母m,如下图1所示...图1 这样,在Excel工作表中,按Ctrl+m组合键,会出现如下图2所示的弹出菜单。 图2 当单击菜单中的按钮时,会弹出一个信息框,如下图3所示。
excelperfect 在下图1所示的工作簿Data.xlsx的工作表Sheet1中,存放着待使用的数据。 ?...图1 在下图2所示的工作簿GetData.xlsm中,根据列C中的数据,在上图1的工作簿Data.xlsx的列E中查找是否存在相应数据的单元格。 ?...图3 在工作簿GetData.xlsm中,输入代码: Sub CopyData() '关闭屏幕刷新 Application.ScreenUpdating = False '声明变量...Set wksData =Workbooks("Data.xlsx").Sheets("Sheet1") '判断所选单元格是否在列C中 If ActiveCell.Column...注意,要使代码正常运行,应该将两个工作簿都打开。 代码的图片版如下: ?
在上一篇文章《Excel应用实践10:合并多个工作簿中的数据》中,我们使用代码快速合并超过50个Excel工作簿文件,然而,如果要合并的工作簿中工作表的名称不相同,但位于每个工作簿的第1个工作表;并且,...要在合并后的工作表的第1列中输入相对应的工作簿文件名,以便知道合并后的数据来自哪个工作簿文件。...1) '在Combined工作表中的开头插入一列 ws.Columns(1).Insert...,将数据依次添加到新增加的工作表中,同时在工作表首列添加工作簿文件名。...有几句代码需要特别说明: 1.代码: ws.Cells(Rows.Count, 2).End(xlUp)(2) 注意到最后的括号和放置在其中的数字2,这表明在工作表第2列中最后一个数据单元格之后的空单元格
本例中,要合并的工作簿放置在同一文件夹中,为方便描述,这些工作簿名称和其要合并的数据工作表如下(假设要合并的工作簿有3个): “工作簿1.xlsm”中的工作表“完美Excel” “工作簿2.xlsm”中的工作表...要求: 1.将这些工作簿中的工作表合并到名为“合并.xlsm”工作簿的工作表“数据”中。...2.在“合并.xlsm”工作簿工作表“数据”的列F中,放置对应行数据来源工作簿工作表名,例如如果数据行2中的数据来自工作表“完美Excel”,则在该行列F单元格中输入“完美Excel”。...3.要合并的工作簿工作表,例如工作簿1.xlsm中的“完美Excel”数据发生变化后,在“合并.xlsm”工作表中运行代码后,会清除“数据”工作表中原先的数据并重新合并上述工作簿中的工作表数据。...图1 在“合并.xlsm”工作簿中,打开VBE,插入标准模块,输入下面的代码: Sub CombineWorkbook() Dim wb As Workbook Dim i As Long
引言:这是在ozgrid.com论坛中看到的一个VBA程序,特辑录于此,供有兴趣的朋友学习参考。 下面的程序统计工作簿中所有工作表的字符总数,包括其中的文本框中的字符数。...lTxtBox = lTxtBox +shp.TextFrame.Characters.Count End If Next shp '统计包含常量的单元格中的字符...sMsg = sMsg & Format(lTotal,"#,##0") & _ " 个字符 (作为常量)" &vbCrLf & vbCrLf sMsg = sMsg & "在公式中...(作为值)有 " &Format(lFormulaValues, "#,##0") & _ " 个字符" &vbCrLf sMsg = sMsg & "在公式中(作为公式...MsgBox Err.Number & ": "& Err.Description Resume ExitHandler End If End Sub 对于下面的示例工作簿
文章背景:工作生活中涉及到VBA,时常要将Excel文件保存为.xlsm格式。而在右键新建的可选项中,一般只有.xlsx文件。下面介绍如何在右键新建选项中添加启用宏的工作簿.xlsm。...(5)在注册表中,找到.xlsx 文件夹,找到Excel.Sheet.12文件夹下的ShellNew文件夹,双击FileName打开,复制其中的数值数据:C:\Program Files\Microsoft...(7)在桌面上新建一个空的启用宏的工作簿,将其重命名为:Excel14M.xlsm,然后将该文件移动到以下路径的文件夹中:C:\Program Files\Microsoft Office\root\vfs...在桌面上点击右键,选择新建,此时可以看到在可选项中已经有了启用宏的工作簿。...参考资料: [1] 如何在右键中添加“新建启用宏的工作簿.xlsm”(https://jingyan.baidu.com/article/066074d62dca1cc3c21cb099.html)
领取专属 10元无门槛券
手把手带您无忧上云