Excel精英培训网

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

[已解决]那个老师在线啊?帮忙个事吧

[复制链接]
发表于 2015-5-3 16:28 | 显示全部楼层 |阅读模式
我想让查询到AL列,可是到了K列就不动了,后面的数据引用不不来了,咋办?谢谢了
Private Sub ComboBox1_Change()
Dim xm$, i&, j&, aa
xm = ComboBox1.Text
With Me.ListBox1
    .Clear
    .ColumnCount = 20
    .ColumnWidths = "35,30,30,30,30,30,30,30,30,30"
    For i = 0 To UBound(k)
        If xm = k(i) Then
            t(i) = Left(t(i), Len(t(i)) - 1)
            If InStr(t(i), ",") Then
                aa = Split(t(i), ",")
                For j = 0 To UBound(aa)
                    .AddItem
                    .List(j, 0) = arr(aa(j), 1)
                    .List(j, 1) = arr(aa(j), 2)
                    .List(j, 2) = arr(aa(j), 3)
                    .List(j, 3) = arr(aa(j), 4)
                    .List(j, 4) = arr(aa(j), 5)
                    .List(j, 5) = arr(aa(j), 6)
                    .List(j, 6) = arr(aa(j), 7)
                    .List(j, 7) = arr(aa(j), 8)
                    .List(j, 8) = arr(aa(j), 9)
                    .List(j, 9) = arr(aa(j), 10)
                Next
            Else
                .AddItem: j = 0
                .List(j, 0) = arr(t(i), 1)
                .List(j, 1) = arr(t(i), 2)
                .List(j, 2) = arr(t(i), 3)
                .List(j, 3) = arr(t(i), 4)
                .List(j, 4) = arr(t(i), 5)
                .List(j, 5) = arr(t(i), 6)
                .List(j, 6) = arr(t(i), 7)
                .List(j, 7) = arr(t(i), 8)
                .List(j, 8) = arr(t(i), 9)
                .List(j, 9) = arr(t(i), 10)
            End If
        End If
    Next
End With
End Sub
最佳答案
2015-5-4 14:15
改了一下,把地名和日期全部放到ListBox里面去。
发表于 2015-5-3 16:37 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2015-5-3 16:38 | 显示全部楼层
谢谢您搭理我

查询区域引用不到AL列了.rar

36.25 KB, 下载次数: 18

回复

使用道具 举报

 楼主| 发表于 2015-5-3 16:42 | 显示全部楼层
取不好网名 发表于 2015-5-3 16:37
不上附件谁能看懂

附件上去了,您给看看吧,谢谢了
回复

使用道具 举报

发表于 2015-5-3 19:41 | 显示全部楼层
你这里本来就是10列,即:最大是 .List(j, 9),窗口中只能显示10列,又没有 .List(j, 10)、 .List(j, 11)…………

当 j=0 时,arr(aa(j), 2)=arr(2,2),也就是你表中[B22]的值;当 j=1 时,arr(aa(j), 2)=arr(41,2),也就是你表中[B62]格的值,而你的代码中arr(aa(j), 2)的最大是arr(aa(j), 10),也就是只读到表中的第十列,即 J 列。
回复

使用道具 举报

 楼主| 发表于 2015-5-3 20:03 | 显示全部楼层
su45 发表于 2015-5-3 19:41
你这里本来就是10列,即:最大是 .List(j, 9),窗口中只能显示10列,又没有 .List(j, 10)、 .List(j, 11)… ...

老大你下载附件看看,我想增加查询列到AM,不会弄啊,谢谢老大给看看
回复

使用道具 举报

发表于 2015-5-3 22:57 | 显示全部楼层

  .List(j, 0) = arr(aa(j), 1)
  .List(j, 1) = arr(aa(j), 2)
  .List(j, 2) = arr(aa(j), 3)
  .List(j, 3) = arr(aa(j), 4)
  .List(j, 4) = arr(aa(j), 5)
  .List(j, 5) = arr(aa(j), 6)
  .List(j, 6) = arr(aa(j), 7)
  .List(j, 7) = arr(aa(j), 8)
  .List(j, 8) = arr(aa(j), 9)
  .List(j, 9) = arr(aa(j), 10)

改为:
  1. For m = 0 To 38
  2.     .List(j, m) = arr(aa(j), m + 1)
  3. Next
复制代码
试试!
回复

使用道具 举报

 楼主| 发表于 2015-5-4 06:17 | 显示全部楼层
su45 发表于 2015-5-3 22:57

  .List(j, 0) = arr(aa(j), 1)
  .List(j, 1) = arr(aa(j), 2)

老大啊,我试验了,提示没有子过程,我也不会弄了,您下载附件看看,谢谢您了。                   查询区域引用不到AL列了.rar
回复

使用道具 举报

发表于 2015-5-4 11:49 | 显示全部楼层
如果不行,可能你要重新设计窗口了。记忆中好像对于未绑定的数据源的ListBox,最大列数为 10,你可以查下相关帮助!
回复

使用道具 举报

发表于 2015-5-4 14:15 | 显示全部楼层    本楼为最佳答案   
改了一下,把地名和日期全部放到ListBox里面去。

查询区域引用不到AL列了.rar

38.58 KB, 下载次数: 7

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 12:22 , Processed in 0.523603 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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