Excel精英培训网

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

[VBA] VBA化简与改错两个问题看里面代码

[复制链接]
发表于 2016-10-3 18:03 | 显示全部楼层 |阅读模式

VBA化简与改错两个问题看里面代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-10-4 20:15 | 显示全部楼层
关于数组化简,考虑到1-33是连续数,因此直接把源数据的数累加到经此数为数组下标的数组中。
关于改错,原代码只要加一句把K列清空即可,每次累加都在原K列的基础上,不清空当然会错。

  1. Sub 数组()
  2.     Dim arr, arr1, x
  3.     [j10].Resize(100) = ""
  4.     arr = Sheet1.Range("b10:g39")
  5.     arr1 = Sheet1.Range("i10:j42")         '第一个化简,少用I列这个循环,1至33这33个数字,如何改
  6.     For Each x In arr
  7.         arr1(x, 2) = arr1(x, 2) + 1
  8.     Next
  9.     [j10].Resize(UBound(arr1)) = Application.Index(arr1, , 2)
  10. End Sub

  11. Sub 单元格()
  12.     [k10].Resize(100) = ""
  13.     For i = 10 To 39
  14.         For j = 2 To 7
  15.             For k = 10 To 42
  16.                 If Cells(i, j) = Cells(k, 9) Then       '为什么单击一次J列结果正确,什么原因第二次单击J列结果会递增,而数组不会
  17.                     Cells(k, 11) = Cells(k, 11) + 1
  18.                 End If
  19.             Next
  20.         Next
  21.     Next
  22. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
laoau138 + 3 来学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-10-4 20:55 | 显示全部楼层
grf1973 发表于 2016-10-4 20:15
关于数组化简,考虑到1-33是连续数,因此直接把源数据的数累加到经此数为数组下标的数组中。
关于改错,原 ...

还有这个没有被秒

http://www.excelpx.com/thread-424853-1-1.html
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 07:48 , Processed in 0.215626 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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