暂停代码执行但让 Excel 工作

2023-12-20

我正在制作一个宏,我想做以下事情:

  1. 打开一个文件。

  2. 等待文件填满数据(该文件使用单元格公式从外部数据库下载数据,下载大约需要15秒)

  3. 20 秒后检查是否所有内容都已下载,如果没有,请再等待 10 秒(总共等待最多一分钟)。
  4. 如果所有内容都已下载,请存档并关闭文件。

我遇到的问题是停止代码执行一段时间,同时让公式自行更新 - 我在 MSDN 上读到以下内容后尝试了 Application.Wait:

等待方法会暂停所有 Microsoft Excel 活动,并可能会阻止您在等待生效期间在计算机上执行其他操作。然而,打印和重新计算等后台进程仍在继续。”

但它不起作用 - 等待停止了代码和数据下载。有没有办法让代码暂时停止,但让所有其他 Excel 活动继续进行?我希望宏能够完全无人值守地运行,因为它可能必须在半夜运行。

编辑:尝试了 Siddarth 的答案,但它对我不起作用。我尝试过的代码:

Sub processfile()

    Dim bbgwb As Workbook
    Dim filepath As String

    filepath = "C:\Test\0900CET.xls"
    Set bbgwb = Workbooks.Open(filepath)

    Wait 60

    filepath = "C:\Test\Archive\"
    If Len(Dir(filepath)) = 0 Then
        MkDir filepath
    Else
        'Do nothing.
    End If

    filepath = "C:\Test\Archive\0900.xls"

    bbgwb.Worksheets(1).Range("A1:AZ200").Copy
    bbgwb.Worksheets(1).Range("A1:AZ200").PasteSpecial xlPasteValuesAndNumberFormats
    bbgwb.Worksheets(1).Range("C142").Value = Now

    bbgwb.SaveAs Filename:=filepath, FileFormat:=56
    bbgwb.Close
    ThisWorkbook.Close

End Sub

Private Sub Wait(ByVal nSec As Long)
    nSec = nSec + Timer
    While nSec > Timer
        DoEvents
    Wend
End Sub

0900CET.xls 的公式在打开后会自动更新数据(我想要存储和存档,这就是为什么我在最后添加整个复制/粘贴特殊部分)。我刚刚测试了手动打开 0900CET.xls(所有公式在 17.3 秒后更新)并通过上面的代码(在文件存档之前没有更新任何单元格)。


我通常使用我为自己创建的这个子组件

Sub Sample()
    '
    '~~> Do Something
    '
    Wait 5 '<~~ Wait for 5 seconds. Change as applicable
    '
    '~~> Do Something
    '
End Sub

Private Sub Wait(ByVal nSec As Long)
    nSec = nSec + Timer
    While nSec > Timer
        DoEvents
    Wend
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

暂停代码执行但让 Excel 工作 的相关文章

  • 根据关键列合并多个 Excel 工作簿

    我从不同的客户那里收到七个工作簿 xlsx 文件 每个工作簿都有一张工作表 每张工作表至少有一个公共 ID 列 UNIQ PK 其中一本工作簿包含所有可能的 id 列表 其他人可能没有所有 id 的记录 但每一行都定义了 id 值 我需要制
  • openpyxl 2.4.2:保存后公式生成的单元格值为空

    我使用 openpyxl 打开文件 编辑一些单元格并保存更改 这是一个例子 import openpyxl book openpyxl load workbook sheet path sheet book active for row i
  • Excel VBA 多张表求和

    我正在尝试创建一个或多个函数 可以将每个客户的考勤卡每日工作时间相加 得出每天的总工作时间 每个客户在一个工作簿中都有自己的工作表 目前 我有一个函数可以确定与第一个客户一起使用的工作表 工作簿中的第三个工作表 Function First
  • Excel 2007 问题:预编程按钮突然不起作用[重复]

    这个问题在这里已经有答案了 今天 出乎意料的是 我工作的公司使用的表格的按钮突然出现了问题 奇怪的是 它只影响我确信是 ActiveX 命令按钮的部分 而不会导致其他形状或下拉菜单出现问题 问题 按钮没有反应 当您单击时 他们不会访问代码
  • 使用 UnmanagedExports 包 [DllExport] 在 VBA 中调用 C# DLL 触发“找不到 DLL 入口点”错误

    我在用着罗伯特 吉塞克 http stackoverflow com users 35443 robert giesecke用于访问 Excel VBA 中的 c dll 的非托管导出包 我遵循了几个示例并继续收到运行时错误 453 在 m
  • Excel VSTO 加载项可以与 Excel 2007 和 2010 兼容吗?

    是否可以使用 VSTO 开发一个可部署到 Excel 2007 和 2010 的 Excel 加载项 任何有关此主题的详细资源的链接也将不胜感激 我似乎无法在谷歌上找到任何专门解决此问题的内容 我正在使用 Visual Studio 201
  • 如何在 apache poi 中找到包含图片的单元格

    我尝试在 xls 文档中循环图像 我写下一个代码 HSSFPatriarch patriarch sheet getDrawingPatriarch if patriarch null Loop through the objects fo
  • 从单元格复制时省略引号

    Problem 当从程序外部的 Excel 复制单元格时 会自动添加双引号 Details 我在 Windows 7 计算机上使用 Excel 2007 如果我有一个具有以下公式的单元格 1 CHAR 9 SOME NOTES FOR LI
  • 如何创建动态变量名VBA

    我正在尝试根据单元格中的值在 VBA 中创建动态数量的变量 本质上我想要的结果是这样的Team1 Team2 to TeamX 任何帮助是极大的赞赏 Dim i x As Integer Set x Range J4 Value Dim T
  • 如何将32位VBA代码转换为64位VBA代码

    我正在尝试运行宏代码 但由于我使用的是 64 位 Excel 2016 因此该代码不起作用 请帮我解决这个问题 Private Declare Function FindWindowEx Lib User32 Alias FindWindo
  • 如何使用Python更改Excel中的列格式

    我想使用 openpyxl 方法将一张纸上的特定行和列复制到另一张纸上 但我的主要 Excel 文件是 xlsb 文件 而 openpyxl 不支持 xlsb 文件 所以我构建了这种复杂的方式 根据公司规则 我无法从 Microsoft E
  • 将单独的范围放入二维数组中

    我正在尝试获取大小的二维数组 x 3 填充 X只是工作表的大小 行数 并且有 3 列我感兴趣 例如 这些列彼此不靠近arr i 0 应从 AA 栏开始填写 arr i 1 应来自 K 列 并且arr i 2 需要来自 L 列 我尝试按以下方
  • 用户完成后关闭 Excel

    任务非常简单 我想从 VB net GUI 打开 Excel 文档 xls 用户将处理 Excel 文件 用户完成后关闭 Excel 文件 我想要VB net代码释放Excel对象 问题是 当用户关闭文件时 Excel 对象仍然可以在任务管
  • 在 XSSF 工作簿上设置密码保护

    我想为使用 poi 3 14 创建的 xlsx 文件添加密码保护 该文档声称 这是可能的 http poi apache org cryption html http poi apache org encryption html 使用我尝试
  • 如何在 VB.NET 中将 DataGridView 导出为 Excel 格式

    我使用 OLE 通过 VB NET 连接到数据库 并在 DataGridView 中显示结果 我想将 DataGridView 中的数据导出到 Excel 格式文件 即用户可以将 DataGridView 的内容保存为 MS Excel 文
  • 将字符串中的一个字符替换为另一个字符

    我有如下数据 A B C D 我想更换C与数据 例如 Z 这样它可能看起来像 A B Z D 我该怎么做 SUBSTITUTE A1 C Z 虽然我不清楚你是否想要G or Z 你提到G但你的示例输出显示Z
  • Excel VBA 公式德语/法语/意大利语/俄语/荷兰语/外国函数

    当我将数据添加到工作簿时 需要将公式从较早的单元格复制到新单元格 我使用以下公式来计算我的增长率 WENN ODER K9 L9 WENNFEHLER L9 K9 K9 由于这非常耗时 我想用宏来改进它 因此编写了以下代码 Sub Grow
  • 强制 Excel 将多张纸作为单个作业打印

    在某些 Excel 2003 工作簿中 当我尝试print如果有多个工作表 Excel 将这些工作表视为单独的打印作业 这让我一直在编写的 Excel 自动化应用程序感到困惑 因为它会导致 Adob e PDF Printer 停止并询问用
  • org.apache.poi 中的异常

    我试图编写一个可以读取和写入的程序 xlsx文件中 下面提供的代码旨在能够编写其第一个 Excel 程序 package excel reader import java io FileOutputStream import java io
  • Pandas - 分割大的Excel文件

    我有一个大约有 500 000 行的 Excel 文件 我想将其拆分为多个 Excel 文件 每个文件有 50 000 行 我想用熊猫来做 这样它会是最快和最简单的 有什么想法如何制作吗 感谢您的帮助 假设您的 Excel 文件只有一个 第

随机推荐

  • 与厨师一起重命名文件的最佳方法

    如何使用 Chef 重命名文件 In the chef doc http wiki opscode com display chef Resources Resources File我只发现 创造 如果缺失则创建 delete touch
  • php代码在html中还是html在php中? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何配置 Mongodb 的缓存大小?

    我需要在 Mongodb 中处理缓存 这样做需要大量 RAM 吗 在这种情况下使用存储引擎有什么特点和优势 方法 重启后无效 bin mongo 管理员 db adminCommand setParameter 1 wiredTigerEn
  • C#:反序列化 XML 文件错误(认为这是命名空间问题 - 但我一生都无法解决)

    我正在反序列化一个来自我们客户之一的 Web 服务的 XML 文件 问题是 在使用 xsd exe 创建类后 我反序列化该文件并得到通常的 XML 文档中存在错误 2 2 视觉工作室错误 我认为这是第 2 行 它指向命名空间声明 XML 文
  • 将 Java 的 Integer 转换为 Scala 的 Int

    我有一段返回的 Java 代码java lang Integer它可以是null someClass getMyInteger 但是当我在 Scala 类中使用它时 我收到此错误 导致 java lang NullPointerExcept
  • HealthKit:HKObserverQuery 未触发

    我正在尝试做一件非常基本的事情 设置一个 HKObserverQuery 以便我可以知道各个数据点何时发生更改 我已确保用户已授权应用程序使用相关数据点 无论出于何种原因 我可以在每次启动应用程序时触发查询 但当我关闭应用程序 进入 健康
  • __unsafe_unretained 和弱并在 ARC 下分配? [复制]

    这个问题在这里已经有答案了 可能的重复 强 弱 保留 unsafe unretained 分配 https stackoverflow com questions 9784762 strong weak retain unsafe unre
  • 如何在WPF选项卡控件中创建梯形选项卡

    如何在WPF选项卡控件中创建梯形选项卡 我想创建非矩形选项卡 看起来像 Google Chrome 中的选项卡或 VS 2008 代码编辑器中的选项卡 可以用 WPF 样式完成还是必须用代码绘制 互联网上有可用的代码示例吗 Edit The
  • 为什么当参数相等时 std::sort 比较函数必须返回 false?

    在 std sort 中 您可以提供第三个参数 它是列表排序方式的基础 如果您希望第一个参数先出现 则返回 true 如果您希望第二个参数先出现 则返回 false 我遇到了这样的问题 我的谓词函数应该是 无效的比较器 我已将其范围缩小到它
  • @mui/material/styles 和 @mui/styles 之间的区别?

    在 Material UI v5 中 一些 API 使用是从 mui material styles like useTheme 一些API的使用是从导入的 mui styles like makeStyles 我可以只使用一个库中的那些与
  • 将通用结构保存到 redis

    在编写 golang Web 服务器时 我必须使用某种缓存 所以我选择了 redis 我需要某种可以接受任何结构并将其作为值保存到 Redis 的函数 有什么方法可以在不使用的情况下做到这一点interface 作为接收参数或重复太多但仍保
  • 包含至少一位数字的字母数字字符串的正则表达式

    我正在寻找具有以下条件的正则表达式 a 至少 13 个字母数字字符 b 最多 17 个字母数字 人物 c 和至少 1 位数字 该正则表达式满足 a 和 b 它如何也满足条件c a zA Z0 9 13 17 输入文本示例 matching
  • 简单GDI项目的Mingw-w64和TDM-GCC之间的差异

    我需要在 Win64 上为 Win64 构建一个简单的非商业工具 处理 Windows GDI API 无交叉编译 MinGW 对我来说似乎是最好的选择 我过去已经使用过 32 位版本 至于 64 位 你能告诉我以下版本之间的主要区别吗 明
  • CSS:如何仅在支持悬停的设备上允许悬停状态?

    我一直在寻找一种方法来防止触摸设备 模拟 悬停事件 原因是您无法像在桌面上那样使用光标悬停在触摸设备上 这有时会影响用户体验 因为我在网上没有找到任何解决方案 所以我想在这里发布我自己的解决方案 我希望这会对某人有所帮助 我实现了仅将鼠标悬
  • cURL 从 FTPS 站点下载多个文件

    我正在使用 cURL 第一次使用它 从命令行从 ftps 站点下载文件 这就是我需要做的 从 ftps 站点下载与特定文件名匹配的多个文件 例如Filename csv 1998 zip所以我需要下载所有具有名称的文件Filename cs
  • Xcode 单元测试:Xcode 不会在断点处停止

    使用 Xcode 6 3 Beta 2 进行单元测试我遇到以下问题 当我进行单元测试时 单元测试模块中的断点可以工作 但被测试代码中的中断代码不会被忽略 有任何想法吗 我遇到了同样的问题 原因是方案设置 1 编辑您的方案 2 在左侧面板中选
  • 仅在node_modules中跳过库检查

    关于禁用错误输入中的错误有几个问题node modules e g this one https stackoverflow com questions 49906424 rxjs5 typescript typings fail 4991
  • jQuery UI 抖动 - 填充消失

    我遇到了这个小问题 我的包装纸里有一个盒子 我想来回摇晃它 效果很好 但是当我添加填充时 box动画打开时 填充会消失 这 box还有一个box sizing border box所以填充不会影响盒子的大小 如果我删除box sizing
  • 重定向而不更改 URL Apache

    我想将一个 URL 重定向到另一个 URL 而不更改浏览器 URL www example com abc xml 应重定向到 www example com abc xyz index htm file 1 但浏览器应该显示 www ex
  • 暂停代码执行但让 Excel 工作

    我正在制作一个宏 我想做以下事情 打开一个文件 等待文件填满数据 该文件使用单元格公式从外部数据库下载数据 下载大约需要15秒 20 秒后检查是否所有内容都已下载 如果没有 请再等待 10 秒 总共等待最多一分钟 如果所有内容都已下载 请存