30个有用的Excel VBA代码(26~30)

26.一次保存并关闭所有工作簿

如果有许多工作簿打开,并且要保存和关闭这些工作簿,则需要手动转到并保存每个工作簿,然后关闭它。

这是一个VBA代码,它将关闭所有工作簿并在关闭时保存它。

Sub CloseAllWorkbooks() Dim wb As Workbook For Each wb In Workbooks wb.Close SaveChanges:=True Next wb End Sub

请注意,代码只适用于那些先前已经保存过的工作簿。如果有新工作簿,则必须指定要保存该工作簿的文件夹的名称和位置。

27.限制光标在特定区域的移动

如果要限制工作表中的滚动区域,可以使用以下代码执行此操作:

Private Sub Worksheet_Open() Sheets(“Sheet1”).ScrollArea = “A1:M17” End Sub

请注意,您需要将此代码放入要限制滚动的工作表中。

28.将筛选后的数据复制到新工作簿中

如果您使用的是一个巨大的数据区域,那么过滤器在分割数据时非常有用。

有时,您可能只需要数据区域的一部分。

在这种情况下,您可以使用下面的代码将筛选后的数据快速复制到新工作表中。

Sub CopyFilteredData() If ActiveSheet.AutoFilterMode = False Then Exit Sub End If ActiveSheet.AutoFilter.Range.Copy Workbooks.Add.Worksheets(1).Paste Cells.EntireColumn.AutoFit End Sub

此代码首先检查是否有任何已筛选的数据

否则,它会复制筛选后的数据,插入新工作簿,并将数据粘贴到其中。

29.将所有公式转换为选定数据集中的值

如果要快速将所有具有公式的单元格转换为值,可以使用以下代码:

Sub ConvertFormulastoValues() Dim MyRange As RangeDim MyCell As Range Set MyRange = Selection  For Each MyCell In MyRange  If MyCell.HasFormula Then  MyCell.Formula = MyCell.Value  End If  Next MyCell End Sub

注意这个变化是不可逆的,公式将无法恢复。

或者,你也可以编写一个消息框,显示公式将丢失的警告。这可以防止用户意外运行此宏

30.在单个单元格中获取多个查找值

如果要查找表中的值并在同一单元格中获取所有匹配结果,则需要使用VBA创建自定义函数。

下面是创建了一个公式,类似VLOOKUP。

Function GetMultipleLookupValues(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer) Dim i As Long Dim Result As String For i = 1 To LookupRange.Columns(1).Cells.Count If LookupRange.Cells(i, 1) = Lookupvalue Then Result = Result & ' ' & LookupRange.Cells(i, ColumnNumber) & ',' End If Next iGetMultipleLookupValues = Left(Result, Len(Result) – 1)End Function

注意,这个函数有三个参数:

LookupValue –需要查询的值

LookupRange – 需要查询的区域

ColumnNumber – 提取结果的列号

(0)

相关推荐

  • Excel VBA编程教程(基础一)

    VBA介绍 Visual Basic for Applications(VBA)是 VisualBasic 的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言.主要 ...

  • 惊了!每天按时下班的男同事,私下竟用Excel搞「多人运动」!【excel教程】

    全套Excel视频教程,扫码观看 编按: 哈喽,大家好!在日常工作中,工作表经常会被多人编辑,为此,我们往往需要为不同的人设置不同的查看权限,以实现工作表的分级保密.下面分享一种用VBA设置权限的方法 ...

  • 30个有用的Excel VBA代码(21~25)

    21.突出显示所选数据集中的空白单元格 虽然可以使用条件格式或"转到特殊"对话框突出显示空白单元格,但如果必须经常这样做,最好使用宏. 创建后,你可以将代码保存在个人宏工作簿中. ...

  • 30个有用的Excel VBA代码(11~15)

    11.将所有公式转换为值 如果工作表包含大量公式,并且要将这些公式转换为值,请使用此代码. Sub ConvertToValues() With ActiveSheet.UsedRange .Valu ...

  • 30个有用的Excel VBA代码(16~20)

    16.突出显示所选内容中的可选行 突出显示可选行可以极大地提高数据的可读性. 下面是一个代码,它将立即突出显示所选内容中的可选行. Sub HighlightAlternateRows()Dim My ...

  • 经典Excel VBA代码

    VBA基础在大家的关注声中即将告一段落了,限于水平和篇幅,有许多经典的VBA操作我只是作了简要的介绍,想要熟练地使用VBA还需要大家慢慢地去消化和吸收,然后在实践中总结和提高.最后我收集了常见的VBA ...

  • Excel VBA 7.26从多个报表中提取部分数据汇总?没问题!行数不确定的?没问题!

    一起学习,一起进步~~ 最近有小伙伴反馈在进行工作薄数据合并的过程,碰到了一个新的问题,他们在日常的工作中经常需要将表格中的部分数据提取出来进行汇总,尤其是一些合同数据的整理,人员档案的记录, 比方说 ...

  • 经典Excel VBA代码一箩筐

    VBA基础在大家的关注声中即将告一段落了,有许多经典的VBA操作我们只是作了简要的介绍,想要熟练地使用VBA还需要大家慢慢地去消化和吸收,然后在实践中总结和提高.最后我们收集了常见的VBA代码以飨广大 ...

  • Excel VBA 8.26 正则提取太复杂?部分场景可以用函数

    正则提取太复杂?部分场景可以用函数 点击上方"Excel和VBA",选择"置顶公众号" 致力于原创分享Excel的相关知识,源码,源文件打包提供 一起学习,一起 ...

  • Excel VBA 5.26 新番 最强制霸道的数据保护 打开Excel都需要输入密码

    Excel VBA 5.26 新番 最强制霸道的数据保护 打开Excel都需要输入密码 点击上方"Excel和VBA",选择"置顶公众号" 致力于原创分享Exc ...

  • 太实用了!Excel VBA常用代码!

    前两天有两位朋友留言想收集一些VBA的常用代码,今天开始会陆续分享一些! 记得收藏好哦,因为今后你应用到稍大型Excel VBA程序时,这其中某些代码肯定会用到. 来看看都是哪些常用代码: 下面先举一 ...