Excel精英培训网

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

[已解决]不用format函数不用instr函数,只用VBA数组方法改写这个遗漏计算

[复制链接]
发表于 2017-7-19 11:40 | 显示全部楼层 |阅读模式
本帖最后由 laoau138 于 2017-7-19 12:48 编辑

不用format函数不用instr函数,只用VBA数组方法改写这个遗漏计算


Sub test()
Dim SArr1(), SArr2, Tarr(), i%, j%, n%
SArr2 = [k10:aq10]
n = [c11].End(xlDown).Row
ReDim SArr1(11 To n)
ReDim Tarr(11 To n, 1 To 33)
For i = 11 To n
  For j = 3 To 8
    SArr1(i) = SArr1(i) & "," & Format(Cells(i, j), "00")
  Next
Next
For i = 11 To n
  For j = 1 To 33
    If i = 11 Then
       Tarr(i, j) = IIf(InStr(1, SArr1(i), "," & Format(SArr2(1, j), "00")) > 0, 0, 1)
    Else
       Tarr(i, j) = IIf(InStr(1, SArr1(i), "," & Format(SArr2(1, j), "00")) > 0, 0, 1 + Tarr(i - 1, j))
    End If
  Next
Next
[k11].Resize(n - 10, 33) = Tarr
End Sub



最佳答案
2017-7-19 11:52
  1. Sub aaa()
  2. Dim arr, brr, i&, j&
  3. arr = Range("c11:h" & [c65536].End(3).Row)
  4. ReDim brr(1 To UBound(arr), 1 To 33)
  5. For i = 1 To UBound(arr)
  6.   For j = 1 To UBound(arr, 2)
  7.     brr(i, arr(i, j)) = 0
  8.   Next j
  9. Next i
  10. For i = 1 To UBound(brr)
  11.   For j = 1 To 33
  12.     If brr(i, j) = "" Then If i = 1 Then brr(i, j) = 1 Else brr(i, j) = brr(i - 1, j) + 1
  13.   Next j
  14. Next i
  15. [k11].Resize(UBound(brr), 33) = brr
  16. End Sub
复制代码

不用format函数不用instr函数,只用VBA数组方法改写这个遗漏计算.rar

18.56 KB, 下载次数: 25

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-7-19 11:52 | 显示全部楼层    本楼为最佳答案   
  1. Sub aaa()
  2. Dim arr, brr, i&, j&
  3. arr = Range("c11:h" & [c65536].End(3).Row)
  4. ReDim brr(1 To UBound(arr), 1 To 33)
  5. For i = 1 To UBound(arr)
  6.   For j = 1 To UBound(arr, 2)
  7.     brr(i, arr(i, j)) = 0
  8.   Next j
  9. Next i
  10. For i = 1 To UBound(brr)
  11.   For j = 1 To 33
  12.     If brr(i, j) = "" Then If i = 1 Then brr(i, j) = 1 Else brr(i, j) = brr(i - 1, j) + 1
  13.   Next j
  14. Next i
  15. [k11].Resize(UBound(brr), 33) = brr
  16. End Sub
复制代码

评分

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

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-7-19 12:48 | 显示全部楼层
回复

使用道具 举报

发表于 2017-7-19 16:13 | 显示全部楼层
发表于 2017-7-19 11:40 貼帖
发表于 2017-7-19 11:52 答覆

12分鐘時間改好,我到現在還看不是很懂大哥您的題目意思,真是嘔血了,技術不如人,連看文字也不如人
磕頭了
回复

使用道具 举报

 楼主| 发表于 2017-7-19 19:41 | 显示全部楼层
idnoidno 发表于 2017-7-19 16:13
发表于 2017-7-19 11:40 貼帖
发表于 2017-7-19 11:52 答覆

不懂多少分钟有什么关系
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 18:20 , Processed in 0.397151 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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