Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >存储所有当前打开的excel工作簿,然后再打开它。

存储所有当前打开的excel工作簿,然后再打开它。
EN

Stack Overflow用户
提问于 2015-06-12 01:53:35
回答 2查看 393关注 0票数 1

我目前所面对的问题是:

1.将当前打开的所有excel工作簿存储在数组中。

2.保存和关闭工作簿

3.打开所有打开的工作簿

4.重点放在特定的工作簿上

我现在的代码是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
For Each wb In Application.Workbooks

wb.Save

Next wb

工作如预期,但我的不同的excel工作簿保持‘闪烁’,这是一种刺激,因此需要保存和关闭所有。

我确实理解,要回到特定的工作簿上,可以使用activate函数。如果我在“每个循环”中做一个集合数组,它将不能工作,因为它将变成一个双for循环。

由于我是VBA的新手,我非常感谢你们的任何意见。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-12 02:51:55

在这段代码中,我给出了两种不同的选择。使用集合或数组。当数组需要一个For..Next循环时,您可以为collection循环中的每个项逐步遍历一个集合。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub All_OpenWorkBooks_Collection()

    Dim wrkBk As Workbook

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Add to a collection                                 '
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Dim vItem As Variant
    Dim colWorkBooks As Collection
    Set colWorkBooks = New Collection

    For Each wrkBk In Workbooks
        If wrkBk.Name <> ThisWorkbook.Name Then
            colWorkBooks.Add wrkBk.FullName
            wrkBk.Close SaveChanges:=True
        End If
    Next wrkBk
    Set wrkBk = Nothing

    For Each vItem In colWorkBooks
        Workbooks.Open (vItem)
    Next vItem

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Set a reference to a specific workbook - can then use wrkBk to refer to it. '
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Set wrkBk = Workbooks("Copy (4) of New Microsoft Excel Worksheet.xlsx")
    wrkBk.Activate

End Sub

    '------------------------------------------------------------------------

Sub All_OpenWorkbooks_Array()

    Dim wrkBk As Workbook

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Add to an array.                                      '
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Dim x As Long
    Dim arrWrkBk() As Variant
    ReDim arrWrkBk(1 To Workbooks.Count)

    For x = Workbooks.Count To 1 Step -1
        If Workbooks(x).Name <> ThisWorkbook.Name Then
            arrWrkBk(x) = Workbooks(x).FullName
            Workbooks(x).Close SaveChanges:=True
        End If
    Next x

    For x = 1 To UBound(arrWrkBk)
        If arrWrkBk(x) <> "" Then
            Workbooks.Open (arrWrkBk(x))
        End If
    Next x
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Set a reference to a specific workbook - can then use wrkBk to refer to it. '
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Set wrkBk = Workbooks("Copy (4) of New Microsoft Excel Worksheet.xlsx")
    wrkBk.Activate

End Sub

编辑:注意,我在数组循环中后退一步--当它计算打开的工作簿并关闭它们时,打开的工作簿的数量会随着循环的进展而下降(所以当它到达循环4时,工作簿编号4已经关闭的可能性很大)。

编辑2:关于工作空间的评论可能正是你想要的--我会先检查一下。

票数 2
EN

Stack Overflow用户

发布于 2015-06-12 02:46:15

会在循环帮助之前添加.ScreenUpdating = False吗?

.ScreenUpdating = true,然后再打开它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30800207

复制
相关文章
VBA实用小程序49: 列出所有打开工作簿中的VBA模块和过程
有时,我们可能需要知道工作簿中有哪些模块和相应的过程。Jon Peltier改编了VBA过程,可以列出当前所有已经打开的工作簿中所含有的VBA模块和过程清单。在输出工作表中,前两行为模块所在工作簿名称和工程名称。并且,代码会绕过受保护的VBA工程,同时如果工作簿中没有代码,也会在输出工作表中说明。
fanjy
2019/07/19
4.1K1
问与答57: 如何实现打开工作簿后自动跳转到当前日期所在列?
Q:在Excel工作表中的第1行的每一列,都是按顺序排列的日期,如何在打开工作簿时自动跳转到当前日期所在的列?如下图1所示,如果今天是2019年4月6日,打开工作簿后自动选择这一列。
fanjy
2019/07/19
1.4K0
问与答57: 如何实现打开工作簿后自动跳转到当前日期所在列?
Excel VBA常用功能加载宏——打开活动工作簿所在文件夹
我们在使用电脑的时候,如果打开的窗口太多,任务栏会比较混乱,一般我们就会关闭一些不需要的窗口,比如文件夹等。
xyj
2020/07/28
2.7K0
Excel VBA常用功能加载宏——打开活动工作簿所在文件夹
打开自动运行宏的Excel工作簿出错,怎么办怎么办? | Power Automate实战
以前,我们经常通过Excel宏实现一些自动化的操作控制,比如启动Power Query刷新数据,刷新完毕后再将数据更新到数据库里,然后将这些操作过程放到自动运行宏(workbook_open)过程里,达到启动Excel即自动运行宏的目的。
大海Power
2022/02/28
2.1K0
打开自动运行宏的Excel工作簿出错,怎么办怎么办? | Power Automate实战
Excel应用实践21:实现工作簿所有工作表中的多值替换
有两个工作簿,一个工作簿中存放着要查找并替换成的文本,如下图1所示,列A中是要查找的文本,将列A中查找到的文本替换成列B中相应的文本,例如,将找到的“Excel”替换成“完美Excel”。
fanjy
2019/09/29
3.1K0
OneTab一键分享Chrome当前打开的所有标签页
当你发现自己有太多的标签页时,单击OneTab图标,所有标签页会转换成一个列表,当你需要再次访问这些标签页时,点击OneTab图标唤出列表,点击列表恢复标签页
zhaoolee
2018/08/22
2.3K1
OneTab一键分享Chrome当前打开的所有标签页
Excel事件(三)工作簿事件
大家好,上节介绍工作表事件,本节将介绍工作簿事件,工作簿数量较多,但并没有工作表事件常用,只简单介绍几个常用的工作簿事件。
无言之月
2019/10/13
2.2K0
Python-Excel-07-新建Excel工作簿
系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2
zishendianxia
2019/10/23
8420
Java保护Excel工作簿和工作表
出于安全原因,你可能需要保护整个工作簿或工作表。 有时,你甚至可能还需要保护某个工作表,但却保留指定的单元格进行编辑。 本文将介绍如何使用Free Spire.XLS for Java来实现这些操作。
崔笑颜
2020/06/08
1.5K0
windows在当前目录打开命令行_在当前目录打开命令行
如上图,默认打开之后都是在C盘,接下来输入cd/,回车,接着输入要去的目录,比如我要打开我的D盘,输入d: 回车
全栈程序员站长
2022/11/04
3.2K0
windows在当前目录打开命令行_在当前目录打开命令行
在Finder当前目录打开终端
在Finder打开terminal这个功能其实是有的,但是系统默认没有打开,我们可以通过如下方法将其打开
老高的技术博客
2022/12/27
4.2K0
Excel小技巧79:如何跟踪Excel工作簿的修改
你是否正在寻找跟踪Excel电子表格更改的方法?在许多情况下,你必须将一个文件分发给多个人,并跟踪所做的更改。你可能希望跟踪更改的时间、更改者、更改发生在哪个单元格中以及更改了哪些数据。
fanjy
2021/04/21
6.7K0
Excel小技巧79:如何跟踪Excel工作簿的修改
Excel小技巧78:恢复未保存的Excel工作簿
我们可能碰到过这样的情形,正在编辑Excel工作簿时,Excel突然崩溃了(例如Excel老半天都没有响应)或者电脑突然断电了,这让我们来不及保存工作簿。此时,如何恢复我们的成果?
fanjy
2021/03/12
2.1K0
Excel实战技巧107:识别工作簿中所有图表的详细信息
本文主要讲解如何使用VBA识别图表的详细信息并将结果呈现给用户,所编写的程序需要报告图表的下列特征:
fanjy
2021/08/31
1.3K0
Excel实战技巧107:识别工作簿中所有图表的详细信息
Mac终端新标签打开当前目录
Mac中终端每次打开一个标签都是一个固定的路径,这点对于从Linux发行版过来的用户来说,简直是很不爽,那么如何实现像Linux发行版一样,新标签的打开路径和启动它的标签路径一直呢? 以下几种方法仅供
技术小黑屋
2018/09/04
2.2K0
Mac终端新标签打开当前目录
VBA: 打开带密码的Excel文件
文章背景:想要通过VBA打开一份带密码的Excel文件,然后在文件内填入信息。前述要求可以借助workbook.open来实现。
Exploring
2022/09/20
4.6K0
Python与Excel:使用xlwings打开Excel文件
xlwings是Excel自动化的最佳python库,本文重点讲解如何使用Python xlwings打开Excel文件。
fanjy
2022/11/16
2.8K0
Python与Excel:使用xlwings打开Excel文件
Excel-VBA复制工作表到新工作簿方法
如:在文件“自动工具.xlsx”中有一个工作表为“模板”。我想在“模板”工作表中输入数据,再另存为一个新的文件为“小龙女.xlsx”
哆哆Excel
2022/10/31
11.7K0
Excel小技巧31:引用工作表或工作簿
在使用公式时,我们可以引用不同工作表甚至是不同工作簿中的单元格或单元格区域。其一般语法是:
fanjy
2020/04/02
2K0
点击加载更多

相似问题

查找所有打开的Excel工作簿

33

如何列出所有打开的Excel工作簿

10

自动打开Excel工作簿,但前提是它尚未打开

10

循环遍历所有打开的excel工作簿。

12

所有打开的工作簿的Excel VBA计数和存储列表

112
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文