返回列表 上一主題 發帖

[發問] vba程式碼簡化

[發問] vba程式碼簡化

以下程式碼,目前小弟是以迴圈方式設計,當資料大時跑的速度有點久,不知有其有辦法再簡化或其他方式執行??
sub aa()
Dim sht As Worksheet
For mon = 1 To 12
Application.EnableEvents = False
            For Each sht In Worksheets           
                col = Sheets(mon & "月未結").Range("A1").End(xlToRight).Column               
                 r = Sheets(mon & "月未結").Range("AA1").Value
                For x = 7 To col
                             For y = 2 To r
                                       mony = Application.IfError(Application.VLookup(Sheets(mon & "月未結").Range("A" & y), Sheets("" & sht.Name).Range("A:U"), Application.Match(Sheets("" & sht.Name).Cells(1, x),
                                                          Sheets("" & sht.Name).Range("A1:U1"), 0), 0), "")
                                  Sheets(mon & "月未結").Cells(y, x) = mony
                                Next
                Next                                       
             End If
             Next
Application.EnableEvents = True     
Next mon
end sub

回復 2# samwang


    test.rar (51.12 KB)
檔案如附件,工作表的月份是隨機的,數據欄位會依實際情況新增或減少

TOP

回復 5# samwang


測試功能正常,看來我也要好好學學如何使用陣列了
感謝大大

TOP

        靜思自在 : 多做多得。少做多失。
返回列表 上一主題