excel中vba中,切换其它程序后再切换回excel的窗体,如何使listview保持焦点

如题,运行窗体后,combobox获得焦点,然后在listview里随便选几项(这时所选的条目为蓝色选中状态),然后随便点击一下桌面或其它的程序,然后再回到excel的窗... 如题,运行窗体后,combobox获得焦点,然后在listview里随便选几项(这时所选的条目为蓝色选中状态),然后随便点击一下桌面或其它的程序,然后再回到excel的窗体(激活窗体),这时listview里刚才的选中状态会消失,只有点一下listview里的标题才会重现刚才条目的选中状态,也就是说listview失去了焦点,重新获得焦点后才能显示刚才的选中状态。
请问,如何使回到excel窗体时,如果listview里有条目被选中,则listveiw自动获得焦点。
如果listview没有条目被选中,则焦点在combobox里。

以下是初始化窗体的代码:
Private Sub UserForm_Initialize()
Dim list, li, itm As ListItem
ComboBox1.AddItem "abc"
ComboBox1.AddItem "efg"
ComboBox1.AddItem "uio"
ComboBox1.ListIndex = 0

With ListView1
.FullRowSelect = True
.MultiSelect = True
.ColumnHeaders.Add 1, , "省份", .Width / 4 - 1
.ColumnHeaders.Add 2, , "客户", .Width / 4 - 1
.ColumnHeaders.Add 3, , "销售数量", .Width / 4 - 1
.ColumnHeaders.Add 4, , "销售金额", .Width / 4 - 1
.View = lvwReport
.Gridlines = True
.LabelEdit = lvwManual
End With

For i = 1 To 6
Set list = ListView1.ListItems.Add(Text:=i)
Set li = list.ListSubItems.Add(Text:=i & "a")
Set li = list.ListSubItems.Add(Text:=i & "b")
Set li = list.ListSubItems.Add(Text:=i & "c")
Next
End Sub
展开
 我来答
善良的猪头3
2013-09-20 · TA获得超过2932个赞
知道大有可为答主
回答量:2522
采纳率:71%
帮助的人:2800万
展开全部
试试在你执行完操作后加上LISTVIEW1.SETFOCUS
追问
在哪个事件加啊?
我在userform的avctive里加过都不管用。按理说是窗体激活里,使listview获得焦点,可是,试过了,得不到。不仅listview得不到,combobx也得不到。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
荣理衷清秋
2019-12-30 · TA获得超过1138个赞
知道小有建树答主
回答量:1755
采纳率:100%
帮助的人:8.4万
展开全部
搜一下:excel中vba中,切换其它程序后再切换回excel的窗体,如何使listview保持焦点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式