Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: ksker

[已解决]关于VBA中数组的编写

[复制链接]
 楼主| 发表于 2010-2-28 21:08 | 显示全部楼层

枯禅老师,那现在我的第三列也要生成类似第二列那样的判断语句,那应该怎样修改数组公式啊?麻烦帮忙看看啊!谢谢!
回复

使用道具 举报

发表于 2010-2-28 21:21 | 显示全部楼层

QUOTE:
以下是引用ksker在2010-2-28 21:08:00的发言:
枯禅老师,那现在我的第三列也要生成类似第二列那样的判断语句,那应该怎样修改数组公式啊?麻烦帮忙看看啊!谢谢!

Sub 数据源数据生成()
Dim I&, k&, n&
Dim arr, arr0, arrt()
Dim d As New Dictionary
With Sheets("交易大类")
    arr = .Range("a2:b" & .[a65536].End(3).Row)
End With
For I = 1 To UBound(arr)
    d(arr(I, 1)) = arr(I, 2)
Next
With Sheets("数据源")
    arr0 = .Range("a5:Y" & .[H65536].End(3).Row)
    ReDim arrt(1 To UBound(arr0), 1 To 3)
    For k = 1 To UBound(arrt)
        arrt(k, 1) = d(arr0(k, 8))
        If arr0(k, 4) = 18 Then
            arrt(k, 2) = "关联销售"
        ElseIf arr0(k, 4) = 50 Then
            arrt(k, 2) = "宠物销售"
        Else
            arrt(k, 2) = "非关联销售"
        End If
        If arr0(k, 4) = 18 And arrt(k, 1) = "15GP" Or arrt(k, 1) = "16BR" Then
            arrt(k, 3) = "关联禽料交易"
        ElseIf arr0(k, 4) = 18 And arrt(k, 1) = "11HG" Then
            arrt(k, 3) = "关联猪料交易"
        Else
            arrt(k, 3) = ""
        End If

    Next
    .[a5].Resize(UBound(arrt), 3) = arrt
End With
Set d = Nothing
End Sub

看了一下你前面贴子的意思,估计是这样,具体的判断自己再对应看一下

回复

使用道具 举报

 楼主| 发表于 2010-2-28 21:49 | 显示全部楼层

非常非常感谢!枯禅老师辛苦了!谢谢!数组和字典对我们这些非计算机专业的人来说好难懂啊!呵呵,希望以后枯禅老师多指教了,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-7 02:00 , Processed in 0.254938 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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