<pre id=\\\"best-answer-content\\\">不加k=1当然不可以,因为
For k = 1 To number
Do While t188
a(k, t) = Hex(Asc(Input(1, 1)))
t = t 1
Loop
Next k
这段语句运行后,k=number 1,如果不加k=1,则在下面的赋值语句:.TextMatrix(i, j) = a(k, p),数组a(k, p)等价于a(number 1,p),当然没有数据了?而在填表格过程中,k是一直不变的,所以表格中只显示第一页的数据。如果要显示全部数据可以在设置表格行列时,计算好有多少数据就可以了。
\\\'以下是我改动后的代码,还有一些小问题(填表格时,多做了一些无用功),不过不影响使用,懒得改了
Dim a(10000, 188)
z=lof(1)
Number = IIf((z Mod 188) = 0, z \\\\ 188, z \\\\ 188 1)
t = 0
For K = 1 To Number
Do While t188 And (K - 1) * 188 tz
a(K, t) =Hex(Asc(Input(1, 1)))
t = t 1
Loop
t = 0
Next K
Dim i As Integer, j As Integer, p, w
p = 0
With MSFlexGrid1
.Clear
.TextMatrix(0, 0) = \\\"\\\"
.ColWidth(j) = 500
.Cols = 21
.Rows = IIf((z Mod 20) = 0, z \\\\ 20 1, z \\\\ 20 2)
For j = 1 To .Cols - 1 \\\'就是列的总数
.TextMatrix(0, j) = j
.ColWidth(j) = 500
Next j
K = 1
\\\'Do While p = 188
For i = 1 To .Rows - 1
.TextMatrix(i, 0) = i
For j = 1 To .Cols - 1
If p187 Then
K = K 1
p = 0 \\\'这样表格可以填满了。
.TextMatrix(i, j) = a(K, p)
p = p 1
Else
.TextMatrix(i, j) = a(K, p)
p = p 1
End If
DoEvents
Next j
Next i
\\\'Loop
End With
|