vb6使用xlApp.Workbooks.Open打开excel程序如何获得焦点?
如题。xlApp.Workbooks.OpenCommonDialog3.FileNamexlApp.Visible=True我用vb6打开一个xls文件,现在能成功打开...
如题。
xlApp.Workbooks.Open CommonDialog3.FileName
xlApp.Visible = True
我用vb6打开一个xls文件,现在能成功打开,可是excel窗体并没有获取焦点,焦点始终在vb程序上。
请问:如何是打开的excel程序获取焦点?类似于shell函数中的参数1,使打开的程序置顶。
(Shell Environ("systemroot") & "\notepad.exe " & CommonDialog2.FileName, 1)
谢谢。 展开
xlApp.Workbooks.Open CommonDialog3.FileName
xlApp.Visible = True
我用vb6打开一个xls文件,现在能成功打开,可是excel窗体并没有获取焦点,焦点始终在vb程序上。
请问:如何是打开的excel程序获取焦点?类似于shell函数中的参数1,使打开的程序置顶。
(Shell Environ("systemroot") & "\notepad.exe " & CommonDialog2.FileName, 1)
谢谢。 展开
4个回答
展开全部
我的例子:
Public Const SW_SHOWNORMAL As Long = 1&
Public Sub showexcel ()
dim hwnd as long
dim tem as long
hwnd = FindWindow(vbNullString, "这里填上你的excel表格打开之后任务管理器中应用程序列表对这个窗体的命名(如Microsoft Excel - test.xlsx)") '这里的vbNullString 指明了是空字符串.也就是在所有程序标题名中找你给的标题名
tem = ShowWindow(hwnd, SW_SHOWNORMAL) '在这里SW_SHOWNORMAL等同于1&,设置窗体恢复最小化
xlApp.Visible = True
End Sub
可能窗口启动为最小化状态.这种状态下visible属性是没有用的.无法设置窗口可见,要先恢复窗口状态.
用api解决吧.很方便.刚好之前弄了个小程序用到这个功能
用到两个api 分别是findwindow和showwindow,声明去百度一下.添加在一个模块中声明成public,以便调用
首先用findwindow获取excel窗体的句柄存在hwnd变量中.然后用showwindow将已经最小化的excel窗体恢复正常窗口.然后就可以用excel.application对象的visible属性设置为可见状态了.
在有需要的时候call showexcel就可以,或者将代码加到你的操作中
希望能帮到你
展开全部
默认打开的工作薄就是活动 工作薄,已经获得了焦点!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Command1_Click()
CommonDialog3.ShowOpen
xlApp.Workbooks.Open CommonDialog3.FileName
xlApp.Visible = True
Me.SetFocus
xlApp.WindowState = xlMinimized
xlApp.WindowState = xlMaximized
End Sub
CommonDialog3.ShowOpen
xlApp.Workbooks.Open CommonDialog3.FileName
xlApp.Visible = True
Me.SetFocus
xlApp.WindowState = xlMinimized
xlApp.WindowState = xlMaximized
End Sub
追问
这么开始还管用,用着用着就不管用了,我知道你的原理是最小化后,再最大化,不知为什么用着用着就不管用了。
不对,是本来就不行,我一开始是在vb6里运行可以。编译出来就不行。
追答
我在xp下编译后测试也没有问题。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
XLapp.workbooks(commondialog3.filename).activate
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询