Nhờ Rút Gọn Code VBA

Liên hệ QC

HuyBinhAOF

Thành viên mới
Tham gia
27/12/16
Bài viết
8
Được thích
3
Tình hình là em có 1 file có chứa code VBA như bên dưới
Nhưng chắc do em dùng loop nhiều hay sao ấy mà lúc Get Data trên Sheet Báo Cáo thì nó chạy hơi chậm.
Bác nào giúp em rút gọn cho nó chạy nhanh hơn hộ em với.
 

File đính kèm

Tình hình là em có 1 file có chứa code VBA như bên dưới
Nhưng chắc do em dùng loop nhiều hay sao ấy mà lúc Get Data trên Sheet Báo Cáo thì nó chạy hơi chậm.
Bác nào giúp em rút gọn cho nó chạy nhanh hơn hộ em với.
AOF? Bạn là dân tài chính ah?
Code của bạn có thể rút gọn và cải thiện chỗ này:
Ngoài ra công thức tính tổng thì bạn tính cho thằng đầu thôi, thằng sau fill xuống
Mã:
If Sheet1.Cells(i1, 13).Value > 0 Then
            Lr2 = Lr2 + 1
            Sheet1.Range(Cells(i1, 1), Cells(i1, 11)).Copy Sheet2.Range(Cells(Lr2, 1), Cells(Lr2, 11))
        End If
 
Upvote 0
AOF? Bạn là dân tài chính ah?
Code của bạn có thể rút gọn và cải thiện chỗ này:
Ngoài ra công thức tính tổng thì bạn tính cho thằng đầu thôi, thằng sau fill xuống
Mã:
If Sheet1.Cells(i1, 13).Value > 0 Then
            Lr2 = Lr2 + 1
            Sheet1.Range(Cells(i1, 1), Cells(i1, 11)).Copy Sheet2.Range(Cells(Lr2, 1), Cells(Lr2, 11))
        End If
Mình K48 :)
Cách copy này nó có PasteAll không bạn ? mình cần copy hết cả định dạng nữa.
Mình dùng:
Mã:
For i3 = 3 To Lr2 Step 1
    Sheet2.Cells(i3, 14) = WorksheetFunction.Sum(Range(Cells(i3, 16), Cells(i3, i2 - 1)))
Next i3
tại vì Biến I2 của mình thay đổi tùy thuộc vào người nhập vào ô Sheet2.A2, tức là không xác định được ô cuối cùng của vùng sum
Mình không biết cách để Auto fill cho cái này.
Bạn có thể chỉ rõ hơn cho mình với.
 
Upvote 0
Mình K48 :)
Cách copy này nó có PasteAll không bạn ? mình cần copy hết cả định dạng nữa.
Mình dùng:
Mã:
For i3 = 3 To Lr2 Step 1
    Sheet2.Cells(i3, 14) = WorksheetFunction.Sum(Range(Cells(i3, 16), Cells(i3, i2 - 1)))
Next i3
tại vì Biến I2 của mình thay đổi tùy thuộc vào người nhập vào ô Sheet2.A2, tức là không xác định được ô cuối cùng của vùng sum
Mình không biết cách để Auto fill cho cái này.
Bạn có thể chỉ rõ hơn cho mình với.
có phải tại cells(3,14) bạn có công thức sum rồi đúng ko (i3=3)? thế thì từ dòng 4 đén lr2 bạn chỉ cần kéo công thức từ dòng 3 xuống, cái này ghi macro fill công thức là được mà nhỉ?
 
Upvote 0
có phải tại cells(3,14) bạn có công thức sum rồi đúng ko (i3=3)? thế thì từ dòng 4 đén lr2 bạn chỉ cần kéo công thức từ dòng 3 xuống, cái này ghi macro fill công thức là được mà nhỉ?
ô(3,14) chưa có công thức bạn ạh.
Tại i3=3, mình sum ô (3,16) đến ô (3,i2-1) và biến i2 của mình tùy thuộc vào người nhập dữ liệu
ví dụ người ta cho i2 = 40 thì sẽ sum(3,16 đến 3,39)
Mình đã thử dùng offset nhưng không được nên phải loop.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom