Excel精英培训网

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

[已解决]在listview中利用文本框修改数据源问题及listview栏排序问题

[复制链接]
发表于 2014-2-16 15:04 | 显示全部楼层 |阅读模式
1、单击listview在文本框中显示数据后,修改时如何反馈到源数据,即修改listview显示也同时修改数据源。
2、点击listview栏可进行排序,不知为什么总是报错?
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
Dim i%
    With ListView1
        If (ColumnHeader.Index - 1) = .SortKey Then
            If ColumnHeader.Text = "背号" Then
                For i = 1 To .ListItems.Count
                    .ListItems(i).SubItems(ColumnHeader.Index - 1) = Format(.ListItems(i).SubItems(ColumnHeader.Index - 1), "000000000.000")
                Next i
            End If
                 .SortOrder = (.SortOrder + 1) Mod 2
            If ColumnHeader.Text = "背号" Then
                For i = 1 To .ListItems.Count
                    .ListItems(i).SubItems(ColumnHeader.Index - 1) = Val(.ListItems(i).SubItems(ColumnHeader.Index - 1))
                Next i
            End If
        Else
            If ColumnHeader.Text = "背号" Then
                For i = 1 To .ListItems.Count
                    .ListItems(i).SubItems(ColumnHeader.Index - 1) = Format(.ListItems(i).SubItems(ColumnHeader.Index - 1), "000000000.000")
                Next i
            End If
            .Sorted = False
            .SortOrder = 0
            .SortKey = ColumnHeader.Index - 1
            .Sorted = True
            If ColumnHeader.Text = "背号" Then
                For i = 1 To .ListItems.Count
                    .ListItems(i).SubItems(ColumnHeader.Index - 1) = Val(.ListItems(i).SubItems(ColumnHeader.Index - 1))
                Next i
            End If
        End If
    End With
End Sub
利用文本框修改数据源.zip (27.47 KB, 下载次数: 8)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-2-16 16:48 | 显示全部楼层
SubItems是从1开始的,这里碰到index为1然后再减1就成0了。必须出错。
回复

使用道具 举报

发表于 2014-2-16 16:55 | 显示全部楼层
.SubItems(6) = VBA.Trim(TextBox6) Then _
改成 .SubItems(5)= VBA.Trim(TextBox6) Then _

回复

使用道具 举报

发表于 2014-2-16 16:57 | 显示全部楼层
  1. '更新LISTVIEW控件显示列表
  2. Dim listitem As listitem
  3. Set listitem = UserForm1.ListView1.SelectedItem
  4. listitem.Text = TextBox1
复制代码
回复

使用道具 举报

发表于 2014-2-16 16:59 | 显示全部楼层
排序的代码就不需要这么麻烦,特别是点背号列,把运动员的数据全改成数字了。
回复

使用道具 举报

发表于 2014-2-16 17:08 | 显示全部楼层
另外,你在判断的时候,几个TEXTBOX的值如果有空的话也不太好,必须要做检测
回复

使用道具 举报

发表于 2014-2-16 17:11 | 显示全部楼层    本楼为最佳答案   
利用文本框修改数据源.rar (26.1 KB, 下载次数: 73)
回复

使用道具 举报

 楼主| 发表于 2014-2-16 19:11 | 显示全部楼层
谢谢楼上的老师,在您的帮助下解决了一些问题,再次谢谢!
回复

使用道具 举报

发表于 2014-2-20 11:34 | 显示全部楼层
学习了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 05:22 , Processed in 0.363638 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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