列表框是完全空白的

我试图从我有一个数组填充列表框。 列表框正在获取正确的行数,但它们都是空白的。 起初,它甚至没有这样做,但我换了我的数组,然后至less它使用了正确的行数。 任何人有任何想法?

Public strArray() As String lngArraySize = -1 ReDim strArray(1, 0) For i = intLRow To 2 Step -1 If Cells(i, "E").Value - Cells(i, "D").Value = 0 Then lngArraySize = lngArraySize + 1 ReDim Preserve strArray(1, lngArraySize) strArray(0, lngArraySize) = Format(Cells(i, "C").Value, "mm-dd-yyyy") strArray(1, lngArraySize) = Cells(i, "B").Value End If Next i 

然后我调出用户窗体,并像这样初始化它:

 With .lstOptions .ColumnCount = 2 .ColumnWidths = "100;100" .List = Application.Transpose(strArray) End With 

我能想到的唯一原因是你的range对象不是完全合格的,因此你的代码可能是指错误的表单。 如果代码是指空白工作表,那么ED将是0 ,因此行数仍然是你所期望的。 将您的代码更改为此。

 Dim ws As Worksheet '~~> Change this to the relevant sheet Set ws = ThisWorkbook.Sheets("Sheet1") intLRow = 5 lngArraySize = -1 ReDim strArray(1, 0) For i = intLRow To 2 Step -1 With ws If .Cells(i, "E").Value - .Cells(i, "D").Value = 0 Then lngArraySize = lngArraySize + 1 ReDim Preserve strArray(1, lngArraySize) strArray(0, lngArraySize) = Format(.Cells(i, "C").Value, "mm-dd-yyyy") strArray(1, lngArraySize) = .Cells(i, "B").Value End If End With Next i