Excel精英培训网

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

[已解决]帮忙优化代码,提高运行速度!

[复制链接]
发表于 2021-4-21 14:11 | 显示全部楼层 |阅读模式
本帖最后由 楚雪飞扬 于 2021-4-21 21:41 编辑

Sub 匹配()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim i, f, ary, arr, arr2, arr3
    With Sheets(1)
        ary = Range("a65536").End(xlUp).Row
        arr = Range("A1", [A65536].End(xlUp))
        ReDim arr2(1 To UBound(arr), 1 To 1)
        ReDim arr3(1 To UBound(arr), 1 To 1)
        For i = 2 To UBound(arr)
            arr2(i, 1) = Mid(arr(i, 1), 4, 1) & Mid(arr(i, 1), 6, 1)
        Next
        [d1].Resize(i - 1, 1) = arr2
        For i = 2 To UBound(arr)
            arr2(i, 1) = Mid(arr(i, 1), 3, 1) & Mid(arr(i, 1), 6, 1)
        Next
        [E1].Resize(i - 1, 1) = arr2
        For y = 2 To ary
            arr3(y, 1) = Cells(y, 2) & Cells(y, 5)
        Next
        [F1].Resize(i - 1, 1) = arr3
        For y = 2 To ary
            arr3(y, 1) = Cells(y, 2) & Cells(y, 4)
        Next
        [G1].Resize(i - 1, 1) = arr3
        .[d1].Resize(1, 4) = Array("是否4寸量产", "是否A3", "A3良率", "4/6寸良率")
    End With
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

最佳答案
2021-4-21 19:16
Sub demo()
   With Sheets(1)
      ab = Range("A2", [B65536].End(xlUp))
      ReDim dg(1 To UBound(ab), 1 To 4)
      For i = 1 To UBound(ab)
         dg(i, 1) = Mid(ab(i, 1), 4, 1) & Mid(ab(i, 1), 6, 1)
         dg(i, 2) = Mid(ab(i, 1), 3, 1) & Mid(ab(i, 1), 6, 1)
         dg(i, 3) = ab(i, 2) & dg(i, 2)
         dg(i, 4) = ab(i, 2) & dg(i, 1)
      Next
      [D2].Resize(i - 1, 4) = dg
   End With
End Sub

祝順心,南無阿彌陀佛!

黄光良率.rar

188.43 KB, 下载次数: 4

发表于 2021-4-21 19:16 | 显示全部楼层    本楼为最佳答案   
Sub demo()
   With Sheets(1)
      ab = Range("A2", [B65536].End(xlUp))
      ReDim dg(1 To UBound(ab), 1 To 4)
      For i = 1 To UBound(ab)
         dg(i, 1) = Mid(ab(i, 1), 4, 1) & Mid(ab(i, 1), 6, 1)
         dg(i, 2) = Mid(ab(i, 1), 3, 1) & Mid(ab(i, 1), 6, 1)
         dg(i, 3) = ab(i, 2) & dg(i, 2)
         dg(i, 4) = ab(i, 2) & dg(i, 1)
      Next
      [D2].Resize(i - 1, 4) = dg
   End With
End Sub

祝順心,南無阿彌陀佛!

黄光良率.rar

333.57 KB, 下载次数: 7

回复

使用道具 举报

 楼主| 发表于 2021-4-21 21:41 | 显示全部楼层
cutecpu 发表于 2021-4-21 19:16
Sub demo()
   With Sheets(1)
      ab = Range("A2", .End(xlUp))

这个代码简单多了,感谢帮忙!

评分

参与人数 1学分 +2 收起 理由
cutecpu + 2 不客氣。祝順心,南無阿彌陀佛!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 02:20 , Processed in 0.401384 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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