精华内容
下载资源
问答
  • vba中如何终止整个程序的执行?
    千次阅读
    2020-04-29 11:07:24

    直接在后面使用end语句,比如 

    if a= 1 then
      msgbox “错误退出”
      end
    end if

     

    更多相关内容
  • 运行vba代码的快捷键

    千次阅读 2021-06-01 12:41:41
    1. 单步执行 :F8 2. 一次性执行:F5 3. 退出:重置按钮 4. 断点标记:F9

    1. 单步执行 :F8
    2. 一次性执行:F5
    3. 退出:重置按钮
    4. 断点标记:F9

    5. 视图-工具栏-编辑
    设置、解除注释快

    展开全文
  • 暂停程序的3个思路 暂停 application.wait(now + timevalue("00:00:03")) 和 application.ontime(now + timevalue("00:00:03")) sleep 500 ... 运行的时候程序是挂起的吧,只能加暂停的代码才能让你玩...

     

    问题1:想马上当前运行的程序(尤其是死循环),改怎么做?

    有时候循环写的有问题写成了死循环,或者电脑很卡,运行太慢想提前中止程序的运行,应该怎么办?

    以下方法:

    • ESC
    • ALT +BREAK
    • ctrl+alt+delete 进程停止EXCEL,这个会杀掉EXCEL进程。

     

     

    问题2:用1个程序控制其他程序的运行呢?

     

    • 因为VBA是单线程程序,一个过程运行时,无法再开始其他程序。 也就是无法用   SendMessage() 这种做法?
    • 虽然一个程序/过程运行中,可以先在过程里写调用其他程序,但也是自动的(事前设计的),无法在运行过程中停止。
    • 思路1:把循环过程的判断条件,本身加合适的判断,写合理,尽量避免需要提前停止。
    • 思路2:把循环过程的判断条件,本身加合适的判断。然后在循环过程中调用其他程序,但是这个是事前要设计好的,运行过程中也无法停止。(两个过程至少要用公共变量传递数据)
    • 思路3(实际不可行):同样是用公共变量传递数据,但是两个程序独立,一个过程运行时,这时希望一个过程改变公共变量,从而停止另外一个过程的运行。----实际做不到,因为VBA单线程同时只能做一件事。!

     

    跳出过程,基本上都得用到这个吧 exit sub ( /exit for     /exit do)

      If a = 1 Then
         Exit Sub
      End If

     

    Public x
    
    
    Sub testloop3()
    x = 0
       Do While i <= 100 And x = 0
          i = i + 1
          If i >= 50 Then
             Call test3
          End If
          Debug.Print i
       Loop
    
    End Sub
    
    
    Sub test3()
      x = 1
    
    End Sub

     

    下面的例子是测试,无法再一个程序运行过程中,用另外一个程序去控制打断它的

    Public a
    
    
    Sub testloop1()         '这个测试完全无法打断testloop1的循环
    a = 0
    i = 0
    time1 = Time
    Debug.Print time1
    Do Until i >= 1000 And a = 0
      i = i + 1
      If a = 1 Then
         Exit Sub
      End If
      Range("a1").Value = i
      Debug.Print i
    Loop
    
    time2 = Time - time1    'time  time() now()
    
    Debug.Print time1
    MsgBox ("ok,花费时间" & time2 & "秒")
    End Sub
    
    
    Sub test2()
      a = 1
    End Sub

     

    3 onkey 在主程序里控制?(下面这部分未完成)

     

     

     

     

    4 如何可以点击1个按钮开始运行程序,再点击又关闭?(下面这部分未完成)

     

    暂停程序的3个思路

    • 暂停  application.wait(now + timevalue("00:00:03"))  和 application.ontime(now + timevalue("00:00:03"))
    • sleep 500
    • 加入断点,然后点F5运行一下不就暂停了吗?
    • stop  不行,程序运行时被挂起了
    • 运行的时候程序是挂起的吧,只能加暂停的代码 才能让你玩
    • do event

     

     

    Do Until b = True
      DoEvents
    Loop

     

    Private Sub CommandButton1_Click()
    b = False
    UserForm1.Show 0
    Do Until b = True
      DoEvents
    Loop
    MsgBox [a1] & [a2] & [a3] & Chr(10) & "Done!"
    End Sub

    Private Sub CommandButton2_Click()
    [b1:b100] = "123abc"
    End Sub

     

    需求详细

    • 没有那种,点一下按钮就运行,在点一下就暂停的功能嘛
    • 你的需求得说细点
    • 点一下,是吧一个SUB跑完,还是中间暂停?
    • 再点是重新跑一个sub  还是接着运行?
    展开全文
  • 目录 示例 实现代码 Application.OnTime方法 使用Application....取消Application....在许多时候,开发者希望能够在指定...当单击“停止”按钮后,则停止A2的时间变动。该如何实现? 实现代码 Option Explici...

    目录

    示例   

    实现代码

    Application.OnTime方法

    使用Application. OnTime重复执行程序

    取消Application. OnTime定时器的方法


    示例   

    在许多时候,开发者希望能够在指定时间运行某个程序,该如何实现?本例中,希望为两个按钮设置代码(如图所示)。当单击“开始”按钮后,A2单元格的时间开始启动,并且每秒变动一次,使其值为当前计算机的时间;当单击“停止”按钮后,则停止A2的时间变动。该如何实现?

    实现代码

    Option Explicit
    
    Dim dNextTime As Date
    
    Sub StartTimer()
        '设定下次运行时间为当前时间中1秒
        dNextTime = DateAdd("s", 1, Now)
        '定时运行程序本身
        Application.OnTime dNextTime, "StartTimer"
        '改变单元格的值为当前时间
        Cells(2, 1).Value = Now
    End Sub
    
    Sub StopTimer()
        Application.OnTime dnexttimer, procedure:="StartTimer"
    End Sub
    

    Application.OnTime方法

    Application. OnTime方法可以创建一个定时器使某个过程在指定的时间运行,其语法如下:

    Application.OnTime(EarliestTime,Procedure[[,LatestTime],Schedule])
    •     参数EarliestTime为预定的程序开始时间。
    •     参数Procedure为过程的名称。
    •     参数LatestTime为程序最后的运行时间。当时间到达EarliestTime所规定的时间时,若Excel程序未准备好执行程序(一般是在单元格编辑状态或者打开某对话框),则VBA将会等待,直到Excel程序能够开始运行由参数Procedure所指定的过程。若设定      了该参数,则遇上述情况时,若直到超过此LatestTime时Excel仍未准备好执行程序,则不会再次执行由参数Procedure所指定的过程。
    •     参数Schedule为逻辑值,当为True(默认值)时,表示创建一个定时器,在由参数EarliestTime所指定的时间运行由参数Procedure所指定的过程,当为False时,表示取消由参数EarliestTime所指定运行时间的定时器。

    使用Application. OnTime重复执行程序

        在使用OnTime方法重复执行同一个程序时,经常采取本例所示的方法:即使用OnTime在当前时间之后的一个时间再次执行其语句所在的过程。当该过程再次被执行时,OnTime语句又再次被执行,因而又创建了一个定时器,使得该过程可以被反复执行,直到参数Schedule为False的OnTime语句来取消定时器为止。

    取消Application. OnTime定时器的方法

        当需要取消由OnTime方法创建的定时器时,需要再次使用OnTime方法,并将参数Schedule设置为False。而当使用OnTime方法撤销定时器时,必须准确地给出EarliestTime参数,否则程序将出现如图所示的错误。为了避免该错误的发生,可以在模块中定义一个公共变量用以存放定时器的准确时间,并在创建定时器时进行记录。当需要取消时,可以使用该变量描述准确时间并传递给EarliestTime参数。

     

    展开全文
  • 代码: waitTime = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 3) Application.Wait waitTime 来自excelhome网友Zamyi
  • VBA暂停执行防止卡退

    2021-04-05 19:47:33
    考虑到连续执行过多代码程序会卡退,因此添加暂停按钮很有必要 Application.Wait (Now + TimeValue("0:00:1")) '1为1秒
  • VBA定时刷新(运行程序)

    千次阅读 2019-09-30 10:31:06
    Sub 实时刷新() Call 时间 End Sub Sub 时间() Dim newtime newtime = Now + TimeValue("00:10:00") 模块1.test Application.OnTime newtime, "时间" End Sub
  • HI,大家好,我是星光,今天咱们来继续学习VBA。...如何编写和运行VBA代码?什么是VBA先来看第一个问题,什么是VBA?你学了一段时间VBA,有一天有个异性朋友问……“小胖,你最近在学什么呀?”“VBA!”“VB...
  • 如何调试Excel VBA代码

    千次阅读 2019-06-03 03:08:50
    错误的语法结构,比如if和end if没有对应上:代码运行前会给出编译错误提示。 类型不匹配:函数输入的参数与定义时的参数类型不同时会出现该类错误。 变量未定义:指使用了没有申明的变量类型(当Option Expli...
  • Excel VBA

    2021-10-13 11:32:37
    一、宏与VBA 什么是宏与VBA VBA(Visual Basic for Applications)是[Visual Basic](https://baike.baidu.com/item/Visual Basic)的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能...
  • VBA好比Excel的“遥控器”,Excel中每个菜单操作命令都对应一句VBA语句,当运行一段VBA语句时,Excel将按照相应顺序执行每句VBA语句,就像VBA在对Excel进行“遥控”一样,自动执行相应的操作。VBA的“遥控”不仅能使...
  • 上一章-[在VBA中进行调试-1)概述] 下一章-[在VBA中进行调试-2B)项目资源管理器窗格(Ctrl-R)] -------------------------------------------------- --------------------------------------------- 2A)代码窗格...
  • Excel VBA 的基本使用与代码示例

    千次阅读 2019-02-19 22:40:43
    本文整理了 Excel 中 VBA 的常用操作代码示例。 使用了 ms office 2016 。 开始 step.1 新建excel文件 新建excel文件,命名为test.xlsx ,如下图所示。 step.2 启用开发工具 文件-&gt;选项-&gt;自定义功能区...
  • 目录 示例表 问题 操作方法 1.录制宏 步骤1 单击“开发工具”选项卡中的... 步骤5 单击“开发工具”选项卡中的“停止录制”按钮,如图所示。 2.运行宏 步骤1在A2:E2区域输入条件。 步骤2单击“开发工...
  • Excel 之 VBA 入门学习代码详解笔记(1) 1 Application 对象及基础用法 **'1-1 screenUpdating 屏幕更新:将工作表中数据刷新** Sub TEXT() Worksheets(1).Select MsgBox "目前屏幕中显示工作表 Sheet1" ...
  • 调试VBA程序常用方法

    2020-12-29 08:47:22
    在中断模式下(ctrl+Break键),可以做:1.执行 工具----选项----编辑器----勾选“自动显示数据提示”则当用鼠标悬停在变量或表达式上时,会出现...3.在代码窗口中选中表达式----按shift+F9----出现”快速监视“对话框...
  • VBA入门-循环

    2021-11-26 22:55:30
    第一天 一、宏程序语句 运行后可以完成一个功能 Sub text() '开始语句 Range("a1") = 100 End Sub '结束语句
  • vba操作规划求解

    千次阅读 2021-09-22 10:28:13
    vba操作规划求解要前期引用用到的函数1,SolverReset2,SolverOk 函数3,SolverAdd 函数4,SolverFinish 函数5,SolverSolve 函数一个简单案例 要前期引用 要使用vba操作规划求解,需要添加引用Solver Program Files...
  • 我在VBA脚本中运行JavaScript函数时遇到问题.我的JavaScript:function ConfirmSave(){var Ok = confirm('Are you sure all Documents and Information are attached and correct before saving?');if(Ok)retu...
  • 运行这段代码。 如果窗口中有其他多余代码,要将他们删除,然后关闭窗口。 修改数据,验证透视表是否自动更新 增加一条记录,回车后,透视表就会自动计算并更新。修改或删除数据,透视表也会自动计算。 情况二:...
  • 第37集 正则表达式1 ...2、在字符串判断时,可以最大限度的避开循环,从而达到提高运行效率的目的。 161、 创建方法 1、引用法(前期绑定) 点击VBE编辑器菜单:工具 - 引用,选取: Microsoft VBScript...
  • vba 是编辑宏的语言,可以把宏实现拓展。 1.带有宏的工作表要保存为 xlsm 格式,保存的时候会提示。 xlsx 保存的只是普通的 excel(excel安全机制导致的) 2.未使用相对引用录制的宏是 固定单元格的 (Range) ...
  • VBA关于声音的多种实现方法

    千次阅读 2021-01-31 21:48:55
    End Sub 'Sheets("sheet1").WindowsMediaPlayer1.Controls.stop '停止播放 'Application.OnTime "15:07", "播放" '设定播放时间 1.6 通过beep API API 响铃API函数声明 Private Declare PtrSafe Function Beep Lib ...
  • 使用该语句相当于在程序代码的相应位置设置了断点,当程序运行到该处时,程序将暂时挂起,停止执行。该语句不会造成文件被关闭或者变量被清除等情况发生。程序在Stop语句处停止执行后,用户再次运行程序时,其执行的...
  • 进入F8的Excel VBA问题

    2020-08-09 20:21:52
    进入F8的Excel VBA问题 (Excel VBA Problem With Step Into F8)After you record or write a macro in Excel, you can run the macro, or go slowly through it, line by line, to see if it is working correctly....
  • Excel VBA编程教程(基础一)

    万次阅读 多人点赞 2020-07-10 19:27:39
    说简单点,VBA运行在 Microsoft Office 软件之上,可以用来编写非软件自带的功能的编程语言。Office 软件提供丰富的功能接口,VBA 可以调用它们,实现自定义的需求。基本上,能用鼠标和键盘能做的
  • VBA-EXCEL批量打印

    千次阅读 2018-12-14 17:17:49
    ActiveWorkbook.CheckCompatibility = False '禁止自动运行兼容性检查器 ActiveWorkbook.Save '保存当前工作簙 ActiveWorkbook.Close '关闭当前工作簙 MyFile = Dir If MyFile = "" Then Exit Do Debug....
  • vba 数据有效性backing up your data will always be best practice.备份数据永远是最佳实践。 That being said, there are times when backing up your data can prove difficult in automation. An example...
  • vba程序的vb6封装The debugging module can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture. 可以通过“调试”菜单项...
  • Excel VBA,没你想的那么难 ...宏的源代码就是由VBA编写,可以在 宏->编辑 里面查看 VB= Visual Basic For Applications 第二章 认识编辑工具 VBA编译器(Visual Basic Editor)打开方式: Excel窗口

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,355
精华内容 542
热门标签
关键字:

vba停止运行代码