首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果我使用无限循环,我应该把VBA.DoEvents和Application.OnKey放在哪里?

如果您使用无限循环,您应该将VBA.DoEvents和Application.OnKey放在循环的适当位置。

VBA.DoEvents是一个方法,用于在VBA代码执行期间允许系统处理其他事件。在无限循环中使用VBA.DoEvents可以确保系统能够响应其他事件,例如用户的键盘输入或鼠标点击。这样可以避免程序在循环期间变得无响应。

Application.OnKey是VBA中的一个方法,用于定义按键的快捷键。在无限循环中使用Application.OnKey可以防止用户通过按下某些键来中断循环。您可以将Application.OnKey用于禁用或重新定义某些按键的功能。

因此,您应该将VBA.DoEvents放在无限循环的适当位置,以确保系统能够处理其他事件。同时,如果您希望禁用或重新定义某些按键的功能,您可以在无限循环之前或之后使用Application.OnKey。

以下是一个示例代码,演示了如何在无限循环中使用VBA.DoEvents和Application.OnKey:

代码语言:txt
复制
Sub InfiniteLoop()
    ' 禁用Esc键的功能
    Application.OnKey "{ESC}", "DoNothing"
    
    Do
        ' 在循环中执行您的代码
        
        ' 允许系统处理其他事件
        DoEvents
    Loop
End Sub

Sub DoNothing()
    ' 什么都不做
End Sub

在上面的示例中,我们使用Application.OnKey禁用了Esc键的功能,并在无限循环中使用了VBA.DoEvents来确保系统能够处理其他事件。

请注意,以上答案中没有提及任何特定的腾讯云产品或产品链接,因为问题要求不提及特定的云计算品牌商。如需了解腾讯云的相关产品和服务,请访问腾讯云官方网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel实战技巧50: 避免因粘贴破坏数据有效性

原来的思路是,如果是有数据有效性设置的单元格,在用户粘贴数据前,保存数据有效性设置,在用户粘贴后,使用工作表事件取消用户粘贴的数据,同时恢复原来的数据有效性设置。...但一直没有着手编写代码,今天在jkp-ads.com中看到实现这样功能的代码,偷个懒,稍作整理修改,辑录于此,供有需要的朋友参考。..."^v" Application.OnKey "^{Insert}" Application.OnKey "+{Insert}" Application.OnKey "~"..._ & vbNewLine& "提示: 要想可以撤销粘贴, 使用命令栏中的粘贴值按钮....ActiveCell.Offset(, -1).Select End Select End If End Sub '检查要粘贴到的单元格有无违反数据验证规则 '如果违反任意单元格验证则返回

6.7K31

面试题 -- 如何设计一个线程池

线程放在哪个池子里? 线程怎么取得任务? 线程有哪些状态? 线程的数量怎么限制?动态变化?自动伸缩? 线程怎么消亡?如何重复利用? 任务相关 任务少可以直接处理,多的时候,放在哪里?...提高响应速度:利用已经存在的线程进行处理,少去了创建线程的时间 管理线程可控:线程是稀缺资源,不能无限创建,线程池可以做到统一分配监控 拓展其他功能:比如定时线程池,可以定时执行任务 需要考虑的点 那线程池设计需要考虑的点...线程放在哪个池子里? 线程怎么取得任务? 线程有哪些状态? 线程的数量怎么限制?动态变化?自动伸缩? 线程怎么消亡?如何重复利用? 任务 任务少可以直接处理,多的时候,放在哪里?...线程池本身,就是为了限制充分使用线程资源的,因此有了两个概念:核心线程数,最大线程数。...而重复利用,其实是执行完任务之后,再去去任务队列取任务,取不到任务会等待,任务队列是一个阻塞队列,这是一个不断循环的过程。 任务相关 任务少可以直接处理,多的时候,放在哪里

73330

for循环、递归、回溯

(x-1,ans*x); } 怎么样,对于C基础如果掌握的还行的话,这段代码应该很好理解。...递归,顾名思义就是“递”“归”。也就是说,写每一个递归函数的时候,都应该在写之前考虑清楚,哪里体现了“递”,哪里体现了“归”。...b:gcd(b,a%b); } 这是一段很常用的代码,我们知道,在学习过程中不求甚解是最不应该的。因此现在来仔细看一看。这里的“递”“归”放在同一行。首先进行判断a==b?...到了这一步,相信大家应该已经有所明白。循环其实就是一个控制变量从开始条件走到结束条件的过程(在循环的过程顺带其他变量也改变一下),因此需要控制变量,开始条件,结束条件(缺一不可)。...前面已经拿建树给大家讲过递归的“工作原理”,它是先无限递归,然后到达某个条件之后,回溯到上面一个位置,继续向其他方向递归。

1.1K51

面试题 -- 如何设计一个线程池

线程池使用了池化技术,将线程存储起来放在一个 "池子"(容器)里面,来了任务可以用已有的空闲的线程进行处理, 处理完成之后,归还到容器,可以复用。...线程放在哪个池子里? 线程怎么取得任务? 线程有哪些状态? 线程的数量怎么限制?动态变化?自动伸缩? 线程怎么消亡?如何重复利用? 任务 任务少可以直接处理,多的时候,放在哪里?...线程池本身,就是为了限制充分使用线程资的,因此有了两个概念:核心线程数,最大线程数。...而重复利用,其实是执行完任务之后,再去去任务队列取任务,取不到任务会等待,任务队列是一个阻塞队列,这是一个不断循环的过程。 任务相关 任务少可以直接处理,多的时候,放在哪里?...这个世界希望一切都很快,更快,但是希望自己能走好每一步,写好每一篇文章,期待和你们一起交流。如果有帮助,顺手点个赞,对,是莫大的鼓励认可。

84000

前端工作师都能做什么?

这几年,前端开发确实是火的不行不行的, 工资也动辄十几K,几十K的, 而且前端入门的门槛确实也不高, 无非是三大块:html / css / js, 这三块里,你搞懂任意二块,就够你吃穿之用了, 但如果只是这样...以下为本人“一孔之见”哈,不喜勿喷, 前端火就火在,它有“无限可能”! 这,什么意思呢? 无限可能? 它还能变成个猴啊?...当然不能,, “无限可能”,自己的理解就是说,你放在哪里,它就在哪里运行。...你它: 放在网页中,它是网页UI交互; 放在移动端,它是webApp; 放在服务端,它是nodeJs; 放在React,它是桌面应用; 放在Ruff,它是嵌入式开发; 放在webGL,它可以搞canvas...再接下来, 你爱干嘛就干嘛吧, 毕竟,无限可能嘛

79870

动态规划: 给我个机会,再兑换一次零钱

如果没有任何一种硬币组合能组成总金额,返回 -1。 你可以认为每种硬币的数量是无限的。...所以本题的两个for循环的关系是:外层for循环遍历物品,内层for遍历背包或者外层for遍历背包,内层for循环遍历物品都是可以的! 那么采用coins放在循环,target在内循环的方式。...本题钱币数量可以无限使用,那么是完全背包。所以遍历的内循环是正序 综上所述,遍历顺序为:coins(物品)放在循环,target(背包)在内循环。且内循环正序。...,遍历物品放在循环也是可以的,就直接给出代码了 // 版本二 class Solution { public: int coinChange(vector& coins, int...,看一篇又是遍历背包的for循环放里面,看多了都看晕了,到底两个for循环应该是什么先后关系。

45910

VBA制作简单的按键精灵

但是工作中真有类似的例子,估计是单位财务系统的版本太旧,又或者是没人去研究系统,同事做凭证都是手敲进去的。...,这一句可以省略,MySleep时间加大一些,这样可以点运行程序后,用鼠标点击去激活窗口 VBA.AppActivate "好高级的系统.txt - 记事本" MySleep 1...RetCode Dim t As Double t = VBA.Timer() Do Until VBA.Timer() - t > Interval VBA.DoEvents...Loop End Function 程序是比较简单的,只要自己多试试,控制好MySleep的时间就好,程序运行的过程不要去操作鼠标键盘。...另外: 输入法会对输入的内容有影响,最好调成英文状态 如果确实数据太多了,可以分开多次来输入 一些特殊字符或者功能键需要放在“{}”内,具体请查看SendKeys的帮助文件

3.7K20

python0035_ 整合shell编程_循环_延迟_清屏

​整合shell编程回忆上次内容 用\r 可以让输出位置回到行首原位刷新时间 如果想要的是大字符效果 需要使用 figlet但同时还希望能刷新​编辑这可能吗?...show_time.py 的输出字符串 直接通过 管道| 给到 figlet 其中 show_time.py程序 只负责输出时间 输出的结果 通过管道|给 figlet figlet 负责变大​编辑如果想要输出三个变大之后的时间应该如何呢...figletpython3 show_time.py | figletpython3 show_time.py | figlet尝试运行​编辑运行结果​编辑 确实变大了 而且输出了三次 现在需要不只输出三次 而是无限多次不断刷新应该怎么办呢...尝试循环无限多次肯定需要循环! 原来放在 python文件 中的的循环定时功能 现在都需要放在 sh脚本 文件里由 shell 来控制延迟的节奏 那问题来了 sh脚本文件 如何进行循环?搜索一下!​...编辑 想只要一个! 少则得多则惑!可以清一下屏幕么?

2.7K10

Python 为什么会有个奇怪的“...”对象?

严格来说, 这是旁门左道,在语义上站不住脚——“...”或其它常量或已被赋值的变量放在一个空的缩进代码块中,它们是与动作无关的,只能表达出“这有个没用的对象,不用管它”。 ?...Python 允许这些不被实际使用的对象存在,然而聪明的 IDE 应该会有所提示(用的是Pycharm),比如告诉你:Statement seems to have no effect 。...(4)表示无限循环 最后,认为有一个非常终极的原因,除了引入“...”来表示,没有更好的方法。 先看看两个例子: ? 两个例子的结果中都出现了“...”,它表示的是什么东西呢?...对于列表字典这样的容器,如果其内部元素是可变对象的话,则存储的是对可变对象的引用。那么,当其内部元素又引用容器自身时,就会递归地出现无限循环引用。...在 Python 中不少的使用场景,除了占位符用法,还可以支持扩展切片语法、丰富 Type Hint 类型检查,以及表示容器对象的无限循环 ...

2K10

给初学者的RxJava2.0教程(五):背压(Backpressure)

看好多吃瓜群众早已坐不住了, 别急, 我们先来回顾一下上一节讲的Zip....A 已经发送了1000个事件了, 而发的慢的水管B 才发一个出来, 组合了一个之后水管A 还剩999个事件, 这些事件需要继续等待水管B 发送事件出来组合, 那么这么多的事件是放在哪里的呢?...在这个例子中, 我们分别创建了两根水管, 第一根水管用机器指令的执行速度来无限循环发送事件, 第二根水管随便发送点什么, 由于我们没有发送Complete事件, 因此第一根水管会一直发事件到它对应的水缸里去...这段代码很简单, 上游同样无限循环的发送事件, 在下游每次接收事件前延时2秒. 上下游工作在同一个线程里, 来看下运行结果: ? 哎卧槽, 怎么如此平静, 感觉像是走错了片场....从图中我们可以看出, 同步异步的区别仅仅在于是否有水缸. 相信通过这个例子大家对线程之间的通信也有了比较清楚的认知理解.

53440

spring循环依赖为什么不是二级缓存_有效循环血量不依赖

1什么是循环依赖 循环依赖就是: 假设有两个类 AB,A中需要注入B,B中需要注入A 由于A注入B时B没有创建,B创建时A也无法创建导致的死循环问题 2 如何解决循环依赖 我们都知道AOP...,直接放在容器Map里显然不合适,半残品怎么能用,所以需要提供一个可以标记创建中bean(A)的Map,可以提前暴露正在创建的bean供其他bean依赖,而如果初始化A所依赖的bean B时,发现B也需要注入一个...这个应该是在缓存使用时决定的: 此时这个方法中的判断逻辑是: 一级缓存中没有 对象A确实正在创建中 二级缓存中也没有 最终去三级缓存中获取对象,从三级缓存获取后对象从三级缓存删除然后放入到二级缓存中...所以,理解的是二级缓存是为了应对代理这个情况而生的 至此,循环依赖的问题已经完美解决 3无法解决的循环依赖 构造函数循环依赖 如果我们的成员属性是在构造函数里呢?...首先要解决循环依赖就是要先实例化,然后放入三级缓存暴露出来,那么如果是构造函数这一步循环依赖, 实例化的时候就会产生无限递归创建,所以不能解决 多例的循环依赖 如果是多例的,在容器初始化的时候,不会去创建

73330

Spring是如何解决循环依赖问题的及三级缓存的作用

1什么是循环依赖 循环依赖就是: 假设有两个类 AB,A中需要注入B,B中需要注入A 由于A注入B时B没有创建,B创建时A也无法创建导致的死循环问题 2 如何解决循环依赖 我们都知道AOP...,直接放在容器Map里显然不合适,半残品怎么能用,所以需要提供一个可以标记创建中bean(A)的Map,可以提前暴露正在创建的bean供其他bean依赖,而如果初始化A所依赖的bean B时,发现B也需要注入一个...这个应该是在缓存使用时决定的: 此时这个方法中的判断逻辑是: 一级缓存中没有 对象A确实正在创建中 二级缓存中也没有 最终去三级缓存中获取对象,从三级缓存获取后对象从三级缓存删除然后放入到二级缓存中...所以,理解的是二级缓存是为了应对代理这个情况而生的 至此,循环依赖的问题已经完美解决 3无法解决的循环依赖 构造函数循环依赖 如果我们的成员属性是在构造函数里呢?...首先要解决循环依赖就是要先实例化,然后放入三级缓存暴露出来,那么如果是构造函数这一步循环依赖, 实例化的时候就会产生无限递归创建,所以不能解决 多例的循环依赖 如果是多例的,在容器初始化的时候,不会去创建

44620

Python模块:tkinter

首先来大概看一下tkinter的描述,依旧是先导入然后使用使用help查看,如图所示。 ? 稍微翻译一下DESCRIPTION下面那几段。 Tkinter模块提供允许显示,位置安排控制控件的类。...通过这个大家应该可以发现,更准确的说,tkinter不是一个模块,而是一个包,这个包下面还有好多个模块一个包。...有些人就觉得见鬼了,既然tkinter是包,包就是文件夹,在其中必须有一个__init__.py,为什么还可以from tkinter import Tk?这个Tk类到地方在哪里?...通过上面介绍的方法,大家编写这个按钮事件的方法应该已经不难了吧,如果还是觉得很难,可以参考一下的,如图所示。 ? 如果上面的代码有不懂的可以加群(群号见文末)咨询群主,也就是本人。...因为发送数据是用户自己点击按钮来实现的,接收数据是一有数据就要立刻接收,因此我们接收数据丢给一个单独的线程来处理就可以了,具体怎么接收数据,我们只需要一个无限循环即可,只要不是关闭连接,它就会一直等数据

2.1K20

HashMap的为啥用尾插法?

主要是为了安全,防止环化 因为resize的赋值方式,也就是使用了单链表的头插入方式,同一位置上新元素总会被放在链表的头部位置,在旧数组中同一条Entry链上的元素,通过重新计算索引位置后,有可能被放到了新数组的不同位置上...B的下一个指针指向了A 一旦几个线程都调整完成,就可能出现环形链表 如果这个时候去取值,就出现了无限循环的状态.....使用头插会改变链表的上的顺序,但是如果使用尾插,在扩容时会保持链表元素原本的顺序,就不会出现链表成环的问题了 Java8在同样的前提下并不会引起死循环,原因是扩容转移后前后链表顺序不变,保持之前节点的引用关系...这个算法应该如何设计呢? 我们首先可能会想到采用%取余的操作来实现。...详细请看 至于为啥初始长度是16觉得就是大家都觉得16通常情况够用了吧.如果你有其他看法可以评论 三 .为啥我们重写equals方法的时候需要重写hashCode方法呢?

1.8K20

Genesis框架从入门到精通(7): 框架的过滤器

在Genesis 框架的内置动作这篇文章中,介绍了可以在哪里找到大多数 Genesis 中使用的动作。其实大多数Genesis中的过滤器也都可以在相同的文件中找到。...因为这是在循环内部运行的,所以我们应该查看的是 genesis/lib/structure/post.php (记住, loop.php的构建循环结构的文件,但循环中的实际输出内容是在 post.php...''; } 你会注意到我们没有写上优先级参数的数量。使用默认值的话就不必添加。接下来你应该注意到,先判断它是不是搜索页面,如果不是就直接返回 $text。...因为在 php 里使用了 html 字符串,所以必须使用连接运算符(.)将它们放在一起。...确信你看到这里,应该能感受到这个简单的函数的方便之处了吧,当你有一个字符串,你想修改它其中的某部分的时候,你可以使用过滤器。 注:这里可以看一下怎么用动作来实现,做一个对比: <?

83720

什么是手机软件测试工程师_软件测试

在说明手机测试之前,觉得应该了解一下什么是嵌入式操作系统,这是个时髦的名词,虽然我们已经被嵌入式操作系统的产品所包围,但是却不一定能说清楚,什么是嵌入式操作系统,而学校的课堂上,讲的也不多,所以很多人对此感到云山雾罩...我们的手机如果不是认为电源切断的话,或者在电源消耗到一定程度的话,是会一直在使用的,所以,手机程序是一直在运转的,就是说一直在循环,这个对于了解嵌入式程序,应该是个好材料——嵌入式程序就是一个无限循环的程序...手机程序就是在一个无限循环的程序,什么时候跳出这个无限循环?...你关机吧,如果感到不高兴,电池卸下来,因为有可能进入死循环,而关机键失效了,——只好通过取下电池 这里要专门说明一下存储器,因为很多手机毛病都存储有关,而且很多问题都存储相关,计算机的存储是关键,...NVRAM 是一个很特别的存储器,它SRAM相类似,但是价格却高很多,由于一些数据实在重要,断电后必须保持这些数据,所以只能存放在这里,一般个人信息有关的数据会放在这里,比如S IM卡相关数据。

63840

每天 3 分钟,小闫带你学 Python(八)

3.else 一定放在最后使用。 4.一定要注意缩进的问题。 下面开始学习今天的内容吧。...1.循环语句 1.1 场景带入 相信有一个场景一定出现在很多人的童年中:“这篇文章抄写20遍”,“错字给我罚抄100遍”.....然后大家就开始发挥自身的想象力,什么复印纸啦,什么笔绑一起啦。...其实使用循环语句,很简单: i = 0 while i < 10000: print("媳妇儿,错了") i += 1 它真的可以输出一万遍,不信可以试一下,如果电脑性能不是很好劝你放弃...冷静一下,想想哪里没有讲到。思索中 ...... 1.4 break continue 就说忘了点什么嘛,这俩语句超级重要,今天拖堂也必须给大家讲一下。...内部循环使用了break,即内部循环肯定在打印输出第一个式子后,立刻停止。外部循环则不受影响。外部循环控制的是第几行,按道理,它应该输出 9 行内容,每一行只有一个式子,我们稍后检验一下结果。

63120

今天老夫就把完全背包的底裤给你扒出来瞅瞅!!!

房里有些好康的,来看看完全背包的底裤 完全背包 双重for循环遍历顺序再探 C++测试代码 总结 最后再啰嗦一下,稍微总结一下完全背包需要的注意事项 ---- 完全背包 有N件物品一个最多能背重量为...每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。 完全背包01背包问题唯一不同的地方就是,每种物品有无限件。...在下面的讲解中,依然举01背包的底裤里面的这个例子: 背包最大重量为4。 物品为: 每件商品都有无限个! 问背包能背的物品最大价值是多少?...1, 0); for (int j = 0; j <= m; j++) { for (int i = 0; i < size; i++) { //因为这里物品遍历放在内侧...但如果题目稍稍有点变化,就会体现在遍历顺序上。 如果问装满背包有几种方式的话?那么两个for循环的先后顺序就有很大区别了,而leetcode上的题目都是这种稍有变化的类型。

42730

由浅入深的前端面试题 矫情的“浪漫主义”诗句

题目前身 这道题可以分为前后两个部分,第一部分很简单,一般有一定JS OOP基础的候选者应该都可以答好: 一个社交网络有一组成员(member),每个成员有一个自己的名字,存储其朋友信息的列表。...它的典型错误包括但是不限于: function Member (name) { this.name = name; } Member.prototype.friends = []; 关于方法属性是应该放在原型上...它的典型错误包括但是不限于:使用对象承载worklist,然后用for...in循环遍历worklist。 这样做的问题在于:for...in循环并没有要求枚举对象的修改与当前循环保持一致。...诗句的后半句拿出来共勉:“Hold infinity in the palm of your hand, and eternity in an hour 无限放在你的手上,永恒在一刹那里收藏”。...在前端快速迭代发展的学习中,作为初学者,往往面对浩瀚的知识海洋望洋兴叹,此时基础便是那能够收藏“永恒无限”的潘多拉魔盒。

725100

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券