Mã:
Sub bao_cao()
Application.ScreenUpdating = False
Dim i, u, y As Integer
u = InputBox("Nhap usd")
y = InputBox("Nhap eur")
For i = 30000 To 1 Step -1
If Cells(i, 13) <= 0 Then
Rows(i).Delete
End If
Next
Columns("N:N").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("BE1").Value = u
Range("BF1").Value = y
Range("N2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-4]=""VND"",RC[-1],IF(RC[-4]=""USD"",RC[-1]*R1C57,RC[-1]*R1C58))"
Range("N2").Select
Selection.AutoFill Destination:=Range("N2:N24525")
Range("N2:N24525").Select
Range("N1").Select
ActiveCell.FormulaR1C1 = "QD"
Range("N2").Select
Columns("N:N").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
For i = 30000 To 1 Step -1
If Cells(i, 14) <= 0 Then
Rows(i).Delete
End If
Next
Lần đầu e làm VBA để xóa các dòng thỏa điều kiện <=0, trước đó dự liệu đã được quy đổi về chung một đơn vị tiền tệ.
Mọi người nhìn hộ e code như vậy đã tối ưu chưa ạ? Vì e thấy nó mất khá nhiều thời gian để chạy.
Ngoài ra, M.n cho e hỏi ở đoạn code
Mã:
ActiveCell.FormulaR1C1 = _
"=IF(RC[-4]=""VND"",RC[-1],IF(RC[-4]=""USD"",RC[-1]*R1C57,RC[-1]*R1C58))"
Em xin cảm ơn m.n đã dành thời gian giúp đỡ.