Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2310|回复: 3

[已解决]定义N个数组,能否用变量替换及代码优化问题

[复制链接]
发表于 2011-11-4 10:51 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2011-11-4 11:37 | 显示全部楼层    本楼为最佳答案   
本帖最后由 爱疯 于 2011-11-4 11:50 编辑
  1. Sub 按钮4_Click()
  2.     Dim A(), B(), n%, i%, j%, k%
  3.     With Sheets("sheet1")
  4.         i = .Range("a2").End(xlDown).Row
  5.         A = .Range("a2:b" & i).Value
  6.     End With
  7.     n = 4
  8.     ReDim B(1 To UBound(A), 1 To n)
  9.    
  10.     '为给b赋初值
  11.     For i = 1 To UBound(B)
  12.         For j = 1 To UBound(B, 2)
  13.             B(i, j) = 0
  14.         Next j
  15.     Next i
  16.    
  17.     For i = 1 To UBound(A)
  18.         For j = 1 To UBound(A, 2)
  19.             For k = 1 To n
  20.                 If A(i, j) = k Then
  21.                     B(i, k) = 1
  22.                     Exit For
  23.                 End If
  24.             Next k
  25.         Next j
  26.     Next i
  27.     Sheets("sheet1").Range("d2").Resize(UBound(B), UBound(B, 2)) = B
  28. End Sub
复制代码



没用countif做{:141:}


vfAhNjHc.zip

18.88 KB, 下载次数: 4

回复

使用道具 举报

发表于 2011-11-4 12:20 | 显示全部楼层
Dim arr1(1 To 4, 1 To 4)
For i = 2 To 5
   For i2 = 1 To 4
      arr1(i - 1, i2) = Application.WorksheetFunction.CountIf(Range("a" & i & ":b" & i), i2)
   Next
Next
Range("d2").Resize(4, 4) = arr1
回复

使用道具 举报

 楼主| 发表于 2011-11-4 12:37 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 20:29 , Processed in 0.551706 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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