Excel的VBA最简单程序,居然在VB6中运行是不通过???Private Sub UserForm_Initialize()
Dim arr
    arr = Sheet2.Range("a1:c" & Sheet2.[a65536].End(xlUp).Row)
    With ListBox1
        .ColumnCount = 3
        .List = arr
    End With
End Sub在VB6中运行所表现问题,实在想不通.
   .ColumnCount = 3 ---不通过??
   .List = arr 不能用数组,想不通 ------
   只能用
   .list(0) = "ffff" 
   .list(1) = "ffffzz"

List1.AddItem "AAAAAAAAA" 
 
   
为什么在EXCEL的VBA中,用数组只要两条语句,就能实现ListBox多列显示???
    .ColumnCount = 3
    .List = arr
而在VB6中,不能用数组.到现在还不能实现--------多列????----想不通????? 
   

解决方案 »

  1.   

    http://club.excelhome.net/thread-572141-1-1.html
    2楼的图示用了----vbTab------实现ListBOX多列?
    不想用API技术,实现ListBox多列,
    想用一种变通的方法.
    不等长的字符串变为等长字符串---请问各位大侠有何高招.
    第一行 len(x) = 10 Len(y)=15
    第二行 len(x) = 20 Len(y)=18----把len(x)=10的字符串,用Space补-len(x + Space(10))=20
    x & vbtab & y现在试一下这种方法吧.
      

  2.   

    VB6下listbox
    多列是可以的,不过不能在运行时赋值,只能在设计时设置属性栏中的Columns
    用数组给listbox赋值是不可以的,只能additem添加。没什么想不通的excel VBA 是后期针对excel开发的(office 2003的版本是vb6.5)
      

  3.   

    谢谢,回复.
    用Label就能实现目标,在listBox多列中绕弯子,花了两时间,太不划算了.
    Sub ls()
      Dim x(1), y(1)
      x(0) = "aa"
      y(0) = "ffff"
      x(1) = "fffff6f"
      y(1) = "ddd99dddjjddd"
      ll = Len(x(1))
      
      aa = x(0) & Space(ll - Len(x(0))) & vbTab & y(0) & vbCr
      aa = aa & x(1) & vbTab & y(1) & vbCr
      MsgBox aa
      me.label1 = aa
    End Sub
      

  4.   

    只是为了显示当然可以用label
    listbox有listbox功能,是label所不具有的。