Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 防止VBE编辑器窗口闪烁_Vba_Excel_Vb6 - Fatal编程技术网

Vba 防止VBE编辑器窗口闪烁

Vba 防止VBE编辑器窗口闪烁,vba,excel,vb6,Vba,Excel,Vb6,有关于这方面的帖子,但似乎我做错了什么,因为窗口仍在闪烁。以下是我代码的相关部分: Private Declare Function LockWindowUpdate Lib "user32" (ByVal hWndLock As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal ClassName As String, ByVal WindowName As Str

有关于这方面的帖子,但似乎我做错了什么,因为窗口仍在闪烁。以下是我代码的相关部分:

Private Declare Function LockWindowUpdate Lib "user32" (ByVal hWndLock As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal ClassName As String, ByVal WindowName As String) As Long
170   oExcel.VBE.MainWindow.Visible = False
180   VBEHwnd = FindWindow("wndclass_desked_gsk", oExcel.VBE.MainWindow.Caption)
190   If VBEHwnd Then LockWindowUpdate VBEHwnd
200   With MB.VBProject.VBComponents(MB.Worksheets(sht.Name).CodeName).CodeModule
210       .InsertLines Line:=.CreateEventProc("Click", printbut.Name) + 1, String:=vbCrLf & "Call Sheet4.printbutton"
220   End With
230   oExcel.VBE.MainWindow.Visible = False
240   LockWindowUpdate 0&
我做错了什么?(该代码基于CPearson的代码)


谢谢你的帮助。

我什么都试过了,都没法用。因此,我最终使用的另一个选项(不可取)是:

170   oExcel.VBE.mainwindow.Visible = False
180   curPos = oExcel.VBE.mainwindow.Left
190   oExcel.VBE.mainwindow.Left = 10000
200   With MB.VBProject.VBComponents(MB.Worksheets(sht.Name).CodeName).CodeModule
210       .InsertLines Line:=.CreateEventProc("Click", printbut.Name) + 1, String:=vbCrLf & "Call Sheet4.printbutton"
220   End With
230   oExcel.VBE.mainwindow.Visible = False
240   oExcel.VBE.mainwindow.Left = curPos

检查
VBEHwnd
是否实际返回了某些内容。将行
如果VBEHwnd,则锁定窗口更新VBEHwnd
更改为
如果VBEHwnd,则锁定窗口更新VBEHwnd Else MsgBox“未找到窗口”
发生了什么?我在调试模式下运行了它,它确实返回True并处理行“锁定窗口更新VBEHwnd”,但它仍然闪烁。
VBEHwnd
将永远不会返回
True
False
如果找到一个窗口,那么它应该返回一个数字。但是,如果您没有看到使用上述代码的消息框,则表示已找到该窗口。我回来后会再看一遍你的代码。我现在不在……我的意思是,如果没有返回False,它将返回一个数字。也许我应该提到这是一个自动化Excel的VB6程序。Siddharth,你有机会测试代码吗?非常感谢。