永发信息网

vb6使用xlApp.Workbooks.Open打开excel程序如何获得焦点?

答案:4  悬赏:0  手机版
解决时间 2021-02-15 12:44
  • 提问者网友:谁的错
  • 2021-02-14 20:55
vb6使用xlApp.Workbooks.Open打开excel程序如何获得焦点?
最佳答案
  • 五星知识达人网友:封刀令
  • 2021-02-14 21:12
Private Sub Command1_Click()
CommonDialog3.ShowOpen
xlApp.Workbooks.Open CommonDialog3.FileName
xlApp.Visible = True
Me.SetFocus
xlApp.WindowState = xlMinimized
xlApp.WindowState = xlMaximized
End Sub追问这么开始还管用,用着用着就不管用了,我知道你的原理是最小化后,再最大化,不知为什么用着用着就不管用了。
不对,是本来就不行,我一开始是在vb6里运行可以。编译出来就不行。追答我在xp下编译后测试也没有问题。
全部回答
  • 1楼网友:逃夭
  • 2021-02-15 00:44
XLapp.workbooks(commondialog3.filename).activate
  • 2楼网友:长青诗
  • 2021-02-15 00:08
默认打开的工作薄就是活动 工作薄,已经获得了焦点!
  • 3楼网友:鱼忧
  • 2021-02-14 22:41
我的例子:
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就可以,或者将代码加到你的操作中
希望能帮到你
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯