Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Excel vba刷新等待

Excel vba刷新等待
EN

Stack Overflow用户
提问于 2012-01-19 11:38:26
回答 9查看 86.1K关注 0票数 21

我正在创建一些代码,我可以在其中单击一个按钮,它将刷新我在该工作表上的查询表。

现在,我的问题是,在刷新之后,我有更多的代码来复制一些信息,但是这些代码是在刷新开始后立即运行的,并且这些信息还没有被替换。

我希望创建一个等待刷新完成的时间段,然后可以继续执行其余的代码。

我不想只等待5秒,而是等待刷新时间,这样我就不会等待太长或太短,这取决于网速等。

我该怎么做呢?

编辑:

简单的代码:

代码语言:javascript
运行
AI代码解释
复制
ActiveWorkbook.RefreshAll

在这里,我需要延迟或等待代码,直到所有刷新完成...然后

代码语言:javascript
运行
AI代码解释
复制
MsgBox("The Refreshing is Completed!")

那个方向上的一些东西。但在它实际完成之前,它不能说msgbox ...有时根据网速的不同,刷新需要更短或更长的时间,所以我希望它是实际刷新时间的一个变量。

EN

回答 9

Stack Overflow用户

发布于 2014-11-06 12:59:57

我正在使用一个PowerPivot模型,我想在保存和关闭该模型之前刷新数据。但是,excel只是在刷新完成之前关闭了模型,模型在打开时继续刷新。

在RefreshAll方法后面添加下面这行代码,就完成了这个任务:

代码语言:javascript
运行
AI代码解释
复制
ThisWorkbook.RefreshAll
Application.CalculateUntilAsyncQueriesDone

我希望它也适用于你。

请确保禁用事件以加快速度。

请注意,我使用的是Excel 2010,我不确定此方法在旧版本中是否可用。

票数 13
EN

Stack Overflow用户

发布于 2012-01-19 13:48:59

在您的Web查询的外部数据范围属性中,您有一个类似于“启用后台刷新”的复选框,您应该取消选中它以获得所需的效果。

看看这个页面的底部:http://www.mrexcel.com/tip103.shtml查看图片

编辑:

以下是显示所需效果的两个宏:

代码语言:javascript
运行
AI代码解释
复制
Sub AddWebquery()
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://de.selfhtml.org/html/tabellen/anzeige/table_tr_th_td.htm", _
        Destination:=Range("$A$1"))
        .Name = "table_tr_th_td"
        .BackgroundQuery = False
        .RefreshStyle = xlInsertDeleteCells
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "1"
        .Refresh BackgroundQuery:=False
    End With
End Sub

Sub TestRefreshing()
    Range("A1").Clear
    ActiveWorkbook.RefreshAll
    Debug.Print "Test: " & Range("A1").Value
End Sub

执行AddWebquery添加查询,然后执行TestRefreshing测试效果。您可以将行.BackgroundQuery = False更改为True以获得错误的结果。

带有10秒睡眠的测试页面:

代码语言:javascript
运行
AI代码解释
复制
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>SO-Test</title>
    </head>
    <body>
        <?php
        sleep(10);
        ?>
        <table border="1">
            <thead>
                <tr><th>1</th></tr>
            </thead>
            <tbody>
                <tr><td>2</td></tr>
            </tbody>
        </table>
    </body>
</html>
票数 9
EN

Stack Overflow用户

发布于 2012-10-12 09:01:31

我刚刚遇到了一个类似的问题,我们已经通过以下方法解决了它:

代码语言:javascript
运行
AI代码解释
复制
For i = 1 To ActiveWorkbook.Connections.Count
    ActiveWorkbook.Connections(i).OLEDBConnection.BackgroundQuery = False
    'MsgBox ActiveWorkbook.Connections(i).OLEDBConnection.BackgroundQuery
Next

ActiveWorkbook.RefreshAll

这样,在调用false之前,我们就能够确保所有连接的backgroundQuery属性都是明确的刷新。

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

https://stackoverflow.com/questions/8925403

复制
相关文章
如何利用Excel中的菜单及VBA进行刷新查询及模型?
查询Queries,代表的是我们平时所看的查询名称,例如下面这种,查询名称直接用表1进行替换即可。相当于删除此查询,请谨慎操作。
逍遥之
2020/03/24
1.6K0
Excel VBA事件
在Excel VBA里提供了接口,在发生这些事件之前或者之后,让使用者可以设置一段运行的程序。
xyj
2020/07/28
1.6K0
Excel VBA事件
Excel VBA编程
在Excel中,数据只有文本,数值,日期值,逻辑值和错误值五种类型。但是在VBA中,数据类型跟Excel不完全相同。根据数据的特点,VBA将数据分为布尔型(boolean),字节型(byte),整数型(integer),单精度浮点型(single),双精度浮点型(double),货币型(currency),小数型(decimal),字符串型(string),日期型(date),对象型等等
全栈程序员站长
2022/08/11
46.3K0
Excel VBA编程
excel vba 解密
大家好,又见面了,我是你们的朋友全栈君。Private Sub VBAPassword() ‘你要解保护的Excel文件路径 Filename = Application.GetOpenFilename(“Excel文件(*.xls & *.xla & *.xlt),*.xls;*.xla;*.xlt”, , “VBA激活成功教程”) If Dir(Filename) = “” Then MsgBox “没找到相关文件,清重新设置。” Exit Sub Else FileCopy Filename, Filename & “.bak” ‘备份文件。 End If Dim GetData As String * 5 Open Filename For Binary As #1 Dim CMGs As Long Dim DPBo As Long For i = 1 To LOF(1) Get #1, i, GetData If GetData = “CMG=””” Then CMGs = i If GetData = “[Host” Then DPBo = i – 2: Exit For Next If CMGs = 0 Then MsgBox “请先对VBA编码设置一个保护密码…”, 32, “提示” Exit Sub End If
全栈程序员站长
2022/09/15
9830
Excel VBA学习
学习一下,记录一下,资料来自于网络 网络代码收集一: Sub test() Dim arr, brr, i&, r&, k Set d = CreateObject("scripting.dictionary") Set d1 = CreateObject("scripting.dictionary") With Sheet1 r = .Cells(Rows.Count, 1).End(3).Row For i = 2 To r
哆哆Excel
2022/10/31
2K0
Excel VBA事件——Worksheet
这个事件的有个比较典型的应用场景,选择改变后,将选择的单元格所在行标上颜色,也就是所谓的聚光灯:
xyj
2020/07/28
3.3K0
Excel VBA事件——Worksheet
excel vba获取拼音
Function PinYin2(Hz As String) Dim PinMa As String Dim MyPinMa As Variant Dim Temp As Integer, i As Integer, j As Integer PinMa = "a,20319,ai,20317,an,20304,ang,20295,ao,20292," PinMa = PinMa & "ba,20283,bai,20265,ban,20257,bang,20242,b
landv
2018/05/24
2.1K0
Excel VBA项目实战
前面的《Excel VBA:办公自动化》和大家分享了VBA常用的基础知识,就有同学留言问我:猴子老师,能不能出一个项目实战案例,可以把前面的知识都应用起来。
猴子数据分析
2021/04/15
1.8K1
Excel VBA事件——Workbook
这两个事件在Office2007版本之前使用应该还是比较多的,那时候还没有Ribbon菜单,菜单是下拉式的,也就是和VBA编辑器菜单是一样的。
xyj
2020/07/28
1.2K0
Excel VBA 编程练习
最近做了一个VBA的小case,用于方便excel数据的处理,主要的功能代码记录如下。
全栈程序员站长
2022/09/05
8710
Excel VBA之Find
使用,因为我们的工作表中常常在最后会写一此“备注”,我们在取数据的时候,备注与后面的东西是没用的,所以我们要取到备注以上的东西,以"金额合计"或“合计”为最后一行号
哆哆Excel
2022/10/25
2.3K0
Excel VBA对象模型
上一讲说了Range对象,这一次我们从总体方面来说一下Excel VBA的对象模型。
xyj
2020/07/28
2.4K0
Excel VBA对象模型
Excel如何刷新模型
但老师
2022/03/22
1.1K0
Excel如何刷新模型
如何破解Excel VBA密码
首先,如果文件格式是(.xslm),需要先打开Excel文件,另存为2003版格式(.xls)。
landv
2018/09/26
7K0
如何破解Excel VBA密码
Excel vba编程实例 源码
‘AddOne ‘AddNew ‘FourthOne Worksheets(“Sheet2”).Activate ‘SeveralRows
全栈程序员站长
2022/09/01
1.2K0
Excel VBA事件——ActiveX控件
在Excel中,有两种控件,表单控件和ActiveX控件,这两种控件都可以插入在工作表中用来运行程序,至于区别,只需要简单的知道ActiveX控件更复杂一些,可设置的东西也更多,其中也包括了ActiveX控件具有事件。
xyj
2020/07/28
3.2K0
Excel VBA事件——ActiveX控件
Excel VBA之Range对象
Cells(1,Columns.Count).End(xlToLeft).Column
哆哆Excel
2022/10/25
1.6K0
VBA: 定时保存Excel文件
文章背景:有一份文件的数据更新比较频繁,而其他电脑需要随时查看该文件的最新数据,因此,需要经常保存该文件。
Exploring
2022/09/20
2.5K0
VBA:  定时保存Excel文件
Excel VBA高级筛选技巧
本文探讨如何使用AdvancedFilter基于多个条件进行筛选,而不仅仅是一列数据。示例数据如下图1所示(本文学习整理自wellsr.com,有兴趣的朋友可以查阅原文)。
fanjy
2022/03/07
7.4K0
Excel VBA高级筛选技巧
EXCEL VBA语句集300
        定制模块行为 (1) Option Explicit ‘强制对模块内所有变量进行声明 Option Private Module ‘标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示  Option Compare Text ‘字符串不区分大小写  Option Base 1 ‘指定数组的第一个下标为1 (2) On Error Resume Next ‘忽略错误继续执行VBA代码,避免出现错误消息 (3) On Error GoTo ErrorHandler ‘当错误发生时跳转到过程中的某个位置 (4) On Error GoTo 0 ‘恢复正常的错误提示 (5) Application.DisplayAlerts=False ‘在程序执行过程中使出现的警告框不显示 (6) Application.ScreenUpdating=False ‘关闭屏幕刷新 Application.ScreenUpdating=True ‘打开屏幕刷新 (7) Application.Enable.CancelKey=xlDisabled ‘禁用Ctrl+Break中止宏运行的功能  工作簿 (8) Workbooks.Add() ‘创建一个新的工作簿 (9) Workbooks(“book1.xls”).Activate ‘激活名为book1的工作簿 (10) ThisWorkbook.Save ‘保存工作簿 (11) ThisWorkbook.close ‘关闭当前工作簿 (12) ActiveWorkbook.Sheets.Count ‘获取活动工作薄中工作表数 (13) ActiveWorkbook.name ‘返回活动工作薄的名称 (14) ThisWorkbook.Name ‘返回当前工作簿名称 ThisWorkbook.FullName ‘返回当前工作簿路径和名称 (15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小 (16) Application.Window.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列 (17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化  工作表 (18) ActiveSheet.UsedRange.Rows.Count ‘当前工作表中已使用的行数 (19) Rows.Count ‘获取工作表的行数(注:考虑向前兼容性) (20) Sheets(Sheet1).Name= “Sum” ‘将Sheet1命名为Sum (21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) ‘添加一个新工作表在第一工作表前 (22) ActiveSheet.Move After:=ActiveWorkbook. _ Sheets(ActiveWorkbook.Sheets.Count) ‘将当前工作表移至工作表的最后 (23) Worksheets(Array(“sheet1”,”sheet2”)).Select ‘同时选择工作表1和工作表2 (24) Sheets(“sheet1”).Delete或 Sheets(1).Delete ‘删除工作表1 (25) ActiveWorkbook.Sheets(i).Name ‘获取工作表i的名称 (26) ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines ‘切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮 (27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings ‘切换工作表中的行列边框显示 (28) ActiveSheet.UsedRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式 (29) Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接 (30) ActiveSheet.PageSetup.Orientation=xlLandscape 或ActiveSheet.PageSetup.Orientation=2 ‘将页面设置更改为横向 (31) ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页面设置的表尾中输入文件路径 ActiveSheet.PageSetup.Le
Tony老师
2020/03/05
2.1K0

相似问题

Excel查询- VBA刷新并等待

1105

Excel/VBA/SQL -刷新无效

24

Excel VBA:连接刷新错误

11

使Excel VBA等待外部工作簿链接刷新,然后再继续

20

强制VBA等待power pivot完成刷新

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档