Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2455|回复: 7

[已解决]关于Listview显示另一表的程序

[复制链接]
发表于 2011-8-27 16:12 | 显示全部楼层 |阅读模式
Listview窗口.rar (12.36 KB, 下载次数: 16)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-8-27 16:18 | 显示全部楼层
为什么不放到一个工作薄里,而要分开呀
回复

使用道具 举报

 楼主| 发表于 2011-8-27 16:23 | 显示全部楼层
因为“listview”表用完一次,就复制成新的一个表,但“规格资料”是经常要更新规格
如果listview复了100个表出来,变成“规格资料”的内容就不统一
回复

使用道具 举报

发表于 2011-8-27 17:02 | 显示全部楼层
回复 cut 的帖子

Listview引用其他工作簿数据.rar (17.93 KB, 下载次数: 44)
回复

使用道具 举报

 楼主| 发表于 2011-8-27 17:36 | 显示全部楼层
对了。是这样。以下是我在textbox中模糊查询
但要求查询对象:
Private Sub TextBox1_Change()
Dim what As String: what = TextBox1.Value
Dim rw As String: rw = Sheet1.Range("A65536").End(xlUp).Row
Dim total As String
total = 0

If TextBox1.Value = "" Then
    '
    ListView1.ListItems.Clear
        With Sheet1
          For I = 2 To rw
            Set ITM = ListView1.ListItems.Add()
            ITM.Text = .Cells(I, 1)
            ITM.SubItems(1) = .Cells(I, 2)
            ITM.SubItems(2) = .Cells(I, 3)
            ITM.SubItems(3) = .Cells(I, 4)
            ITM.SubItems(4) = .Cells(I, 5)
            ITM.SubItems(5) = .Cells(I, 6)
                total = total + .Cells(I, 6).Value
            Next I
        End With
           TextBox1.SetFocus
    Exit Sub

Else

    Dim rng As Range
    Set rng = Sheet1.Range("A2:F" & rw)
    Dim dic As Object
    Set dic = CreateObject("scripting.dictionary")
    ListView1.ListItems.Clear   '
    For I = 2 To rw
        For ii = 1 To 2
            Dim tmp As Range
            Set tmp = Sheet1.Cells(I, ii).Find(what, lookat:=xlPart, MatchCase:=False)      '
                If Not tmp Is Nothing Then
                    If Not dic.exists(tmp.Row) Then     '
                        dic.Add tmp.Row, ""
                        Set ITM = ListView1.ListItems.Add()
                        ITM.Text = Sheet1.Cells(I, 1)
                        ITM.SubItems(1) = Sheet1.Cells(I, 2)
                        ITM.SubItems(2) = Sheet1.Cells(I, 3)
                        ITM.SubItems(3) = Sheet1.Cells(I, 4)
                        ITM.SubItems(4) = Sheet1.Cells(I, 5)
                        ITM.SubItems(5) = Sheet1.Cells(I, 6)
                              total = total + Sheet1.Cells(I, 6).Value
                    End If
                End If
            Next ii
        Next I
      
        Set dic = Nothing
End If

End Sub
回复

使用道具 举报

 楼主| 发表于 2011-9-1 15:21 | 显示全部楼层
请问有木有高手可以帮忙解决?
回复

使用道具 举报

发表于 2011-9-1 15:54 | 显示全部楼层    本楼为最佳答案   
回复 cut 的帖子

窗体代码:

  1. Private Sub UserForm_Initialize()
  2.     Dim Wb As Workbook, ArrTemp, i As Byte, j&, iT
  3.     Set Wb = GetObject(ThisWorkbook.Path & "\规格资料.xls")
  4.     With Wb
  5.         ArrTemp = .Sheets(1).Range("a1").CurrentRegion.Value
  6.         With ListView1
  7.             .ListItems.Clear
  8.             For i = 1 To 6
  9.                 .ColumnHeaders.Add , , ArrTemp(1, i), IIf(i = 1, 120, 60)
  10.             Next i
  11.             .View = lvwReport
  12.             For j = 2 To UBound(ArrTemp, 1)
  13.                 Set iT = .ListItems.Add()
  14.                 iT.Text = ArrTemp(j, 1)
  15.                 For i = 2 To 6
  16.                     iT.SubItems(i - 1) = ArrTemp(j, i)
  17.                 Next i
  18.             Next j
  19.         End With
  20.         .Close False
  21.     End With
  22. End Sub
复制代码
Listview窗口.rar (18.53 KB, 下载次数: 36)
回复

使用道具 举报

 楼主| 发表于 2011-9-3 09:03 | 显示全部楼层
谢谢七楼解答,我想在listview中实现模糊查询
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 11:30 , Processed in 0.274071 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表