(RPA学习)使用多线程点击 VBA 运行中的消息提示框

艺赛旗RPA全面免费下载中
点击下载
http://www.i-search.com.cn/index.html?from=line27

业务场景
使用 win32com 运行 Excel 中的宏运算(VBA),会遇到 VBA 运行的最后一步会弹出消息提示框,需点击这个消息提示框之后,VBA 才能运行结束,所以在运行 VBA 之后加入 Try 组件去点击时无法点击的,所以考虑使用多线程来实现。

流程代码
import ubpa.iautomation as iautomation
import threading
import pythoncom
import time
#点击消息提示框按钮
def cilck_ok():
while True:

Try异常

    try:
        # 鼠标点击
        iautomation.WinSearchDepth=2
        selectorJson = {"selector":[{"ControlType":"按钮","ControlTypeID":"0xC350","Index":"1"},
    {"ControlType":"对话框","ControlTypeID":"0xC370","Index":"1"}]}
        iautomation.do_click(win_class=r'XLMAIN',win_name=r'aaaa.xlsm - Excel',selector=selectorJson,button=r'left',curson=r'center',offsetX=0,offsetY=0,times=1,run_mode=r'unctrl',waitfor=3)
        time.sleep(1)
        # Break中断
        break
    except Exception as e:

        pass
    finally:
        pass

#VBA运行代码
def run_vba(path):
'''
一定要添加pythoncom.CoInitialize()
一定要添加pythoncom.CoInitialize()
一定要添加pythoncom.CoInitialize()
重要的事情说三遍
'''
#CoInitialize是 Windows提供的API函数,用来告诉 Windows以单线程的方式创建com对象
pythoncom.CoInitialize()
#载入Excel
xlApp=win32com.client.Dispatch("Excel.Application")
#设置是否打开Excel
xlApp.Visible=True
#设置是否显示警告和消息框

猜你喜欢

转载自blog.51cto.com/14253212/2402651