excel - 停止宏以允许编辑工作簿

标签 excel vba

我编写了一个代码来打开工作簿并按特定列中的数字过滤数据。我需要先过滤“0”,然后编辑数据,然后在“+8”和“-8”之间过滤。

我添加了一个消息框来暂停宏,但在显示消息框时我无法编辑打开的工作簿。我尝试使用“Application.waiting”选项。

我需要自动暂停宏并手动启动它。

Sub Filter_data()

Workbooks.open"D:\Reposrts\AAA.csv"
Activesheet.Range("I1:I100").Autofilter field:=1,Criterial:="0"
Activesheet.columns("A:Z").Autofit
MsgBox"Task ok"       'Here I need to pause the macro and allow for edit opened wb and then manually start macro for below line'
Activesheet.Range("I1:I100").Autofilter field:=1,Criterial:=">8", Opersator:=xlAnd, Criterial:="<-8"

End Sub

最佳答案

  • 将现有的宏分成两部分
  • 第一部分包含 MsgBox"Task ok" 之前的所有内容线
  • 第二部分包含该点之后的所有内容
  • 创建 无模 (或“非模式”)带有标签和“确定”按钮的用户表单,用于调用拆分宏的第二部分
  • “无模式”意味着您可以在用户表单打开时编辑工作簿。 MsgBox是“模态”,这就是为什么你不能编辑任何东西。更多详情 available from Microsoft
  • 替换 MsgBox"Task ok"在拆分宏的第一部分中添加一行打开用户表单的行。

  • 前半部分宏完成后,用户表单正在等待您单击“确定”,您将能够编辑工作簿。单击“确定”后,第二部分将开始。

    大概最好首先考虑您需要用户进行的“编辑”是否可以通过 VBA、用户表单或对话框(包括“选择范围”对话框或“颜色选择器”对话框)

    关于excel - 停止宏以允许编辑工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53607612/

    相关文章:

    excel - 通过 Access VBA 格式化 Excel - 范围应用程序/对象定义的错误

    regex - 是否可以改进此正则表达式以在 Excel 单元格中查找编号的文本行以避免错误匹配?

    Excel 2010 宏 : Replace all cells containing number greater than AND smaller than

    vba - 公式自动填充多列,使用 VBA 中的特定单元格

    excel - 应该引用什么对象来使用 UsedRange 属性?

    java - DataFormatter (org.apache.poi) 删除了我的零

    excel - VBA 按钮可深入到数据透视表

    javascript - Excel 到 html 导出

    Excel宏: Find and Compare Username from a Range of Authorized Usernames

    regex - "If"内的 VBA 动态正则表达式模式