Excel精英培训网

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

[练习题] VBA第13课作业题:VBA数组小试牛刀

  [复制链接]
发表于 2012-4-29 19:58 | 显示全部楼层
這樣子應該就可以了吧!哈!沒有參加上課,純練手!!!

13课作业.rar

9.81 KB, 下载次数: 1

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2012-4-29 21:45 | 显示全部楼层

  1. Sub 按钮2_Click()

  2. Dim arr1(1 To 17, 1 To 4), arr2(1 To 1000, 1 To 1)

  3. Dim x As Integer, y As Integer, k As Integer

  4. For x = 1 To 17

  5.   For y = 1 To 4
  6.   
  7.       If Cells(x, y) < 0 Then
  8.    
  9.         arr1(x, y) = 0
  10.         
  11.         k = k + 1
  12.         
  13.         arr2(k, 1) = Cells(x, y)
  14.         
  15.         Else
  16.         
  17.         arr1(x, y) = Cells(x, y)
  18.         
  19.     End If
  20.    
  21. Next y

  22. Next x

  23. Range("g1:j17") = arr1
  24. Range("m1:m" & k) = arr2

  25. End Sub
复制代码
H19: chenzhi_juan

13课作业.rar

9.66 KB, 下载次数: 2

回复

使用道具 举报

发表于 2012-4-30 14:57 | 显示全部楼层
看看作业,学习                       
回复

使用道具 举报

发表于 2012-5-6 18:49 | 显示全部楼层
Sub 要求1()
Dim arr1, a, b
arr1 = [a1:d17]
For a = 1 To 17
    For b = 1 To 4
        If arr1(a, b) < 0 Then arr1(a, b) = 0
    Next b
Next a
[g1:j17] = arr1
End Sub

Sub 要求2()
Dim arr2, arr3, i, x, y, z
arr2 = [a1:d17]
i = WorksheetFunction.CountIf([a1:d17], "<0")
ReDim arr3(1 To i)
For x = 1 To 17
    For y = 1 To 4
        If arr2(x, y) < 0 Then
            z = z + 1
            arr3(z) = arr2(x, y)
        End If
    Next y
Next x
Range("m1").Resize(i) = WorksheetFunction.Transpose(arr3)
End Sub
回复

使用道具 举报

发表于 2012-5-9 14:26 | 显示全部楼层
校长辛苦了。谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 00:18 , Processed in 0.301027 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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