HuyBinhAOF
Thành viên mới
![](/diendan/data/PhoToDanhHieu/gold.gif)
- Tham gia
- 27/12/16
- Bài viết
- 8
- Được thích
- 3
AOF? Bạn là dân tài chính ah?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.
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 K48AOF? 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
For i3 = 3 To Lr2 Step 1
Sheet2.Cells(i3, 14) = WorksheetFunction.Sum(Range(Cells(i3, 16), Cells(i3, i2 - 1)))
Next i3
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ỉ?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:
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 sumMã:For i3 = 3 To Lr2 Step 1 Sheet2.Cells(i3, 14) = WorksheetFunction.Sum(Range(Cells(i3, 16), Cells(i3, i2 - 1))) Next i3
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.
ô(3,14) chưa có công thức bạn ạh.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ỉ?