Xin chào mọi người.
Mình có 1 file có tới 300.000 row x 50 column data, mỗi lần calculate thì rất lâu, khoảng 30 phút đến 1 tiếng đồng hồ, trong khi công thức thì chỉ loanh quanh vloookup, hlookup sang sheet khác, cộng trừ nhân chia thôi.
Để đẩy nhanh thời gian thì mình có viết 1 vba, vì đặc điểm chung là các dòng đều có formula framework giống nhau, nên mình đặt 1 row làm formula gốc. Sau đó copy rồi paste formula, cho tính toán. Nhưng tình hình là nó ko chịu copy paste chứ đừng nói gì là tính. Mình không rõ mình sai lỗi nào, vì mình record macro thì cấu trúc vẫn giống như code mình build.
Các bạn có suggest gì để sửa lỗi này hoặc giúp mình đạt được mục tiêu trên không ạ ?
Xin chân thành cảm ơn
Đây là code của mình:
Dim n As Long
With ThisWorkbook.Worksheets(1)
n = .Range(Cells(3, 2), Cells(3, 2).End(xlDown)).Rows.Count
.Range(Cells(3, 3), Cells(3, 36)).Copy
.Range(Cells(4, 3), Cells(n + 2, 36)).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False
.Calculate
.Range(Cells(4, 3), Cells(n + 2, 36)).Value = .Range(Cells(4, 3), Cells(n + 2, 36)).Value2
End With
With ThisWorkbook.Worksheets(9)
n = .Range(Cells(3, 1), Cells(3, 1).End(xlDown)).Rows.Count
.Range(Cells(3, 13), Cells(3, 44)).Copy
.Range(Cells(4, 13), Cells(n + 2, 44)).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Calculate
.Range(Cells(4, 13), Cells(n + 2, 44)).Value = .Range(Cells(4, 13), Cells(n + 2, 44)).Value2
End With
Mình có 1 file có tới 300.000 row x 50 column data, mỗi lần calculate thì rất lâu, khoảng 30 phút đến 1 tiếng đồng hồ, trong khi công thức thì chỉ loanh quanh vloookup, hlookup sang sheet khác, cộng trừ nhân chia thôi.
Để đẩy nhanh thời gian thì mình có viết 1 vba, vì đặc điểm chung là các dòng đều có formula framework giống nhau, nên mình đặt 1 row làm formula gốc. Sau đó copy rồi paste formula, cho tính toán. Nhưng tình hình là nó ko chịu copy paste chứ đừng nói gì là tính. Mình không rõ mình sai lỗi nào, vì mình record macro thì cấu trúc vẫn giống như code mình build.
Các bạn có suggest gì để sửa lỗi này hoặc giúp mình đạt được mục tiêu trên không ạ ?
Xin chân thành cảm ơn
Đây là code của mình:
Dim n As Long
With ThisWorkbook.Worksheets(1)
n = .Range(Cells(3, 2), Cells(3, 2).End(xlDown)).Rows.Count
.Range(Cells(3, 3), Cells(3, 36)).Copy
.Range(Cells(4, 3), Cells(n + 2, 36)).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False
.Calculate
.Range(Cells(4, 3), Cells(n + 2, 36)).Value = .Range(Cells(4, 3), Cells(n + 2, 36)).Value2
End With
With ThisWorkbook.Worksheets(9)
n = .Range(Cells(3, 1), Cells(3, 1).End(xlDown)).Rows.Count
.Range(Cells(3, 13), Cells(3, 44)).Copy
.Range(Cells(4, 13), Cells(n + 2, 44)).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Calculate
.Range(Cells(4, 13), Cells(n + 2, 44)).Value = .Range(Cells(4, 13), Cells(n + 2, 44)).Value2
End With