pacoyang_2005 2021-12-17 10:30 采纳率: 0%
浏览 39
已结题

VBA窗体调用后,返回调用点,紧接调用点后的语执行异常

VBA程序。窗体A中的一个命令按钮点击事件Sub内,开头有若干语句,然后窗体A隐藏,之后调用窗体B,后面有若干语句,最后结束 sub。
窗体B中,退出按钮点击事sub 内,第一句是窗体B卸载,第二句是显示窗体A,最后结束sub。
目标:在窗体B中输入数据,返回到窗体A中继续执行窗体A内后面若干语句。
网上有的说:窗体B用无模式显示,窗体A内后面若干语句会直接执行,不会等待窗体B返回。窗体B用有模式显示,窗体A内后面若干语句不会直接执行,会等待窗体B返回后再执行。
网上说法验证情况:前面一句是正确的,后面一句不正确。窗体B用有模式显示,即使从窗体B返回窗体A后,窗体A后的语句不会正常执行,但点击右上角的Ⅹ关闭窗体A后则会执行。
下面是窗体A中的代码(为说明核心问题,作简化处)。

Private Sub 调用窗体B_Click()
  
Open ThisDrawing.Path & "\" & "temp1.txt" For Output As #1
Print #1, 1
Close #1

  '隐藏
  Me.hide
  
Open ThisDrawing.Path & "\" & "temp2.txt" For Output As #1
Print #1, 2
Close #1
  
  '调用
  窗体B.show
  
Open ThisDrawing.Path & "\" & "temp3.txt" For Output As #1
Print #1, 3
Close #1

End Sub

下面是窗体B中的代码(为说明核心问题,作简化处)。

Private Sub 返回窗体A_Click()

  
  '卸载
  Unload Me
  
  '返回
  窗体A.show

End Sub

上面程序中,前面两个文本文件可以正常生成。第三个文件无法正常生成,除非关闭窗体A。从生成的文件时间上可以证实上面的判断。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月25日
    • 修改了问题 12月17日
    • 修改了问题 12月17日
    • 修改了问题 12月17日
    • 展开全部

    悬赏问题

    • ¥15 有赏,i卡绘世画不出
    • ¥15 如何用stata画出文献中常见的安慰剂检验图
    • ¥15 c语言链表结构体数据插入
    • ¥40 使用MATLAB解答线性代数问题
    • ¥15 COCOS的问题COCOS的问题
    • ¥15 FPGA-SRIO初始化失败
    • ¥15 MapReduce实现倒排索引失败
    • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
    • ¥15 找一位技术过硬的游戏pj程序员
    • ¥15 matlab生成电测深三层曲线模型代码