注册 登录
编程论坛 VB6论坛

能不能用表格控件显示?

dsasada 发布于 2018-04-25 20:28, 1979 次点击
Sub abc()
    Dim i As Integer, j As Integer, R As Integer
    Dim d As Object
    Dim ar, br(), m As Integer
    Set d = CreateObject("Scripting.Dictionary")
    R = Sheets(1).[K65536].End(3).Row
    ar = Sheets(1).Range("K5:M" & R)
    ReDim br(1 To UBound(ar), 1 To 2)
    For i = 1 To UBound(ar)
        If Not d.Exists(ar(i, 1)) Then
            m = m + 1
            d(ar(i, 1)) = m
            br(m, 1) = ar(i, 1)
            br(m, 2) = ar(i, 3)
        Else
            br(d(ar(i, 1)), 2) = br(d(ar(i, 1)), 2) + ar(i, 3)
        End If
    Next
    Sheets(1).Range("E" & R + 2).Resize(m, 2) = br

想把数组br的输出结果在datagrid上显示?

[此贴子已经被作者于2018-4-27 09:57编辑过]

5 回复
#2
Artless2018-04-26 00:27
以下是引用dsasada在2018-4-25 20:28:42的发言:

Sub abc()
    Dim i As Integer, j As Integer, R As Integer
    Dim d As Object
    Dim ar, br(), m As Integer
    Set d = CreateObject("Scripting.Dictionary")
    R = Sheets(1).[K65536].End(3).Row
    ar = Sheets(1).Range("K5:M" & R)
    ReDim br(1 To UBound(ar), 1 To 2)
    For i = 1 To UBound(ar)
        If Not d.Exists(ar(i, 1)) Then
            m = m + 1
            d(ar(i, 1)) = m
            br(m, 1) = ar(i, 1)
            br(m, 2) = ar(i, 3)
        Else
            br(d(ar(i, 1)), 2) = br(d(ar(i, 1)), 2) + ar(i, 3)
        End If
    Next
    Sheets(1).Range("E" & R + 2).Resize(m, 2) = br

想把数组br的输出结果在datagrid上显示?

datagrid必须有源
#3
wds12018-04-26 09:35
用MSFlexGrid1控件,控制也简单

i,j控制行列

MSFlexGrid1.Rows:最大行
MSFlexGrid1.Cols:最大列      

MSFlexGrid1.TextMatrix(i,j)="br"
#4
dsasada2018-04-26 10:03
回复 3楼 wds1
谢谢,用datagrid是不是不行?
#5
dsasada2018-04-26 20:01
回复 3楼 wds1
谢谢!!

[此贴子已经被作者于2018-4-27 11:02编辑过]

#6
dsasada2018-04-27 10:22
回复 3楼 wds1
用datagrid是不是不行?

[此贴子已经被作者于2018-4-27 11:56编辑过]

1