listview右键菜单如何在VBA“模块”中引用代码

这个写法提示“要求对象”,估计是要求先引用一下,怎么写呢?PublicSubInsertrow()UserForm1.ListView1.ListItems.Add((U... 这个写法提示“要求对象”,估计是要求先引用一下,怎么写呢?

Public Sub Insertrow()
UserForm1.ListView1.ListItems.Add ((UserForm1.ListView1.ListItems.Count) + 1)

With ListView1
.SetFocus
.ListItems(.ListItems.Count).Selected = True
.SelectedItem.EnsureVisible
End With

End Sub
Public Sub Delete()
Dim i As Integer
For i = ListView1.ListItems.Count To 1 Step -1
If ListView1.ListItems(i).Selected Then
ListView1.ListItems.Remove i
End If
Next i
End Sub
这个问题是下面这个问题的续
搞定了,多谢各位
展开
 我来答
xiaoxi1981
推荐于2016-09-10 · TA获得超过1197个赞
知道小有建树答主
回答量:961
采纳率:72%
帮助的人:339万
展开全部

你的代码是要在模块中引用userform1的listview1控件。所以在引用listview1的地方,listview1的前面都要加上userform1。也就是下面的引用模式:

userform1.listview1

或者你在每个过程里都定义一个变量用来引用userform1的listview1。代码修改如下:

Public Sub Insertrow()
    dim lv as object    '声明一个Object类型的变量lv
    set lv =userform1.listview1    '用lv引用userform1.listview1
    lv.ListItems.Add ((UserForm1.ListView1.ListItems.Count) + 1)
    With lv      '同过lv来访问listview1
        .SetFocus
        .ListItems(.ListItems.Count).Selected = True
        .SelectedItem.EnsureVisible
    End With
End Sub
Public Sub Delete()
     dim lv as object    '声明一个Object类型的变量lv
     set lv =userform1.listview1    '用lv引用userform1.listview1
     Dim i As Integer
        For i = lv.ListItems.Count To 1 Step -1     '同过lv来访问listview1
            If lv.ListItems(i).Selected Then
                lv.ListItems.Remove i
            End If
        Next i
End Sub
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式