使用vba,是否可以从同一文件夹打开多个Excel工作簿并同时保持打开状态?

2023-12-21

这不是我第一次问这个问题,但我稍微改变了细节,希望能让它更清楚。这是我尝试过的代码的一个版本:

Private Sub OpenWbsInPath(zPath As String)
Dim zFile As String
zPath = IIf(Right$(zPath, 1) = "\", zPath, zPath & "\")   ' Ensure zPath ends with "\".
zFile = Dir(zPath & "*.xls*")                             ' "xxxx\*.xls*". OK.
Do While zFile <> ""
    Workbooks.Open Filename:=zPath & zFile      ' Fails with error 1004 on 2nd iteration.
    DoEvents                                    ' Makes no difference.
    zFile = Dir()                               ' Next filename. Path also OK.
Loop
End Sub

我也尝试过使用类似的过程CreateObject("Scripting.FileSystemObject")。到目前为止,在我尝试过的所有方法中,包括我首先创建文件名数组,然后尝试单独打开每个文件的方法,第一个文件打开正常,然后下一个文件无法打开,并出现错误 1004。 真正奇怪的是,在旧版本的程序中,所有文件都可以正常打开。我什至尝试复制相同的代码,但它在新位置仍然不起作用。我已经没有主意了 - 在打开每个工作簿之前是否需要为它创建一个临时文件夹?看起来很疯狂。


我已经运行了您的代码,如果可以打开文件,可以确认它工作正常,如果不能打开,则会失败并显示错误 1004。

无法打开文件的可能原因包括

  1. 它是腐败的,或者。
  2. 它已经开放了。

如果出现以下情况,则无法打开文件:

  1. 您或您的代码已经打开了它(包含代码的文件也在该文件夹中吗?),
  2. 其他人已打开它(该文件夹是否共享?),
  3. Excel 的另一个实例已将其打开(检查任务管理器是否有其他实例)。

您可以手动打开代码失败的文件吗?在Open之前添加一个Debug.Print zFile来查看哪些文件失败

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用vba,是否可以从同一文件夹打开多个Excel工作簿并同时保持打开状态? 的相关文章

  • 我可以用文本框设置变量名称吗? excel

    我可以使用 TextBox Vba Excel 设置变量的名称吗 我必须以在文本框中写入组名称并单击命令按钮的方式输入新的产品组 代码必须从文本框中获取字符串 并将该字符串设置为新创建的数组的名称 我只想在运行时创建一个新变量 或数组 据信
  • Outlook 无法识别一个或多个姓名

    我有以下 vba 代码 它读取邮箱并向任何发送无效代码作为邮箱回复的用户发送回复 但有时会收到运行时错误 Outlook 无法识别一个或多个名称 我的问题是 创建新的 MAPI 配置文件是否可以解决该问题 或者我是否需要添加一个代码来解析地
  • 使用 Apache POI Excel 写入特定单元格位置

    如果我有一个未排序的参数 x y z 列表 是否有一种简单的方法将它们写入使用 POI 创建的 Excel 文档中的特定单元格 就好像前两个参数是 X 和Y 坐标 例如 我有如下行 10 4 100 是否可以在第 10 行第 4 列的单元格
  • VBA 字符串 255 个字符限制

    我在使用 VBA 时遇到问题 并注意到它的字符串限制为 255 个字符 我实际上正在尝试通过 POST 发送 JSON 并暂停执行 我注意到该字符串始终只有 255 个字符 有没有办法调整字符串的大小或其他什么 我在这个问题上浪费了大约 6
  • 所以,我有 6 个“主”文件,然后分为 40 个单独的文件

    我将简要描述我想要的内容 我有 6 个 主 文件 每个文件包含 40 个工作表 如下所示 AG 工作簿有 HR Gp 1 到 HR Gp 40 ER 工作簿有 FB Gp 1 到 Gp 40 等 所有工作表都已 平坦 我已经成功创建了一个适
  • Excel VBA - 添加自定义数字格式

    我有一个在 Excel 外部生成的文件 其中包含许多百分比 所有这些百分比都有一位小数 当导入到 Excel 中时 Excel 会在百分比中添加第二位小数 这似乎是 Excel 中百分比的某种默认格式 它只是添加了一个 0 我想将所有两位小
  • Excel:#CALC!使用 MAP 函数计算间隔重叠时出现错误(嵌套数组)

    我正在努力解决以下公式 它适用于某些情况 但不适用于所有情况 名字input有失败的数据集 得到一个 CALC 描述 嵌套数组 错误 LET input N1 0 0 N1 0 10 N1 10 20 names INDEX input 1
  • VSTO 替代方案 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 VSTO 有哪些替代方案 ManagedXll 能做什么而 VSTO 不能 你什么时候使用其中一个而不
  • 使用自定义功能区时是否可以阻止 MS Access 自动更改选定的功能区选项卡?

    当使用自定义 UI XML 文件在 Access 中添加多个自定义功能区选项卡时 每当关闭窗体时 选定的功能区选项卡都会变回第一个自定义选项卡 我们从 VBA 以编程方式加载自定义功能区 我已经创建了重现问题的 accdb http sdr
  • Redim Preserve 给出“下标超出范围”

    我想要Redim Preserve一个数组我不断收到错误 下标超出范围 我知道只有最后一个维度的大小可以更改 这正是我正在做的事情 这里出了什么问题 数组的类型是Variant BmMatrix Sheets BENCH Range a60
  • 从 MS Access 调用存储过程会导致错误 3146

    当我使用下面所示的代码从 MS Access 前端调用 SQL Server 存储过程时 它停止运行并抛出运行时错误 3146 这个存储过程在 SQL Server 中工作正常 但是当我从 MS Access 运行时 它首先工作 但突然停止
  • 使用宏打开受信任文档或启用宏时 Excel 崩溃

    正如标题所示 我无法使用宏打开受信任的文档 Excel 立即崩溃 制作文档的副本允许其打开 因为该副本不受信任 并且我可以检查 VB 编辑器中的宏 但启用宏会导致另一次崩溃 为什么会发生这种情况以及我可以采取什么措施来解决它 我今天遇到了类
  • 使用 VBA 通过 Access 导航网页/操作 IE

    你好 StackOverflow 社区 我有一个关于使用 Access VBA 操作 IE 的问题 本质上 我正在尝试编写代码 使用 IE 打开特定网页 在该页面中搜索特定链接 目标链接的名称将取决于用户的情况 通过以编程方式单击该链接导航
  • 如何通过电子邮件发送 Excel 文件?

    我有一个 excel 文件 Excel 2003 xls 格式 我想用 c 通过电子邮件发送它 我的代码成功发送它 但是当我尝试打开响应文件时 它似乎编码错误 例如 这里是响应文件名 utf 8 B RWxzesOhbW9sw6FzXzIw
  • 使用 VBA 将 Excel 电子表格中嵌入的 Word 文档保存到磁盘

    我们有一个 Excel 电子表格 当前使用存储在公司 LAN 上的 Word 模板生成报告 这对于内部用户来说效果很好 但对于没有连接到 LAN 的任何人来说就不行了 例如 笔记本电脑用户 管理层不希望将模板作为单独的文件分发给外部用户 而
  • 替换字符串变量中的多个字符 (VBA)

    如何替换字符串变量中的多个内容 这是我在 VBA 中的示例函数 Private Function ExampleFunc ByVal unitNr As String If InStr unitNr OE gt 0 Then unitNr
  • 是否存在用于开放 xml Excel 编辑的良好包装类和/或库?

    我正在寻找一个不错的库 用于在我们的 Windows 服务器上编辑和 或生成 Excel 文档 我觉得 open xml sdk 可能是可行的方法 但对我来说 学习曲线似乎很陡峭 而且我们的开发时间有限 我认为编辑 Excel 文档不应该那
  • VBA Excel:将范围值分配给新范围

    我在将一个工作簿范围中的值分配给当前工作簿中的某个范围时遇到问题 当我使用 Range A1 C1 分配我的范围时 此代码工作正常 但是当我使用 Range Cells 1 1 Cells 1 3 定义我的范围时 该函数会失败 Sub Co
  • 如何修复日期过滤器 VBA,因为它没有拾取我范围内的所有日期

    我正在尝试创建一个过滤器来过滤掉我选择的日期内的所有日期 我选择的日期将始终反映整个月 例如 如果我需要 2019 年 5 月的数据 我将输入开始日期为 01 05 2019 结束日期为 31 05 2019 我的数据过滤器将需要选取经过我
  • 如何使用 php 将 *.xlsb 转换为数组或 *.csv

    我正在尝试转换 xlsb文件到php array or csv文件 或至少 xls 我尝试使用PHPExcel 但看起来它无法识别该文件中的内容 我注意到 你可以重命名 xlsb文件到 zip文件 然后使用命令行解压缩unzip zip 之

随机推荐