Lần đầu làm code VBA (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Status
Không mở trả lời sau này.

70211119

Thành viên mới
Tham gia
10/10/12
Bài viết
27
Được thích
5
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 có thể đưa trực tiếp giá trị u và y vào trong hàm if đó mà không cần phải gán nó nào 1 ô trên bảng tính không ạ?
Em xin cảm ơn m.n đã dành thời gian giúp đỡ.
 
Từ từ để ngừoi ta xem. Mắc mớ gì nóng nảy thúc dục vậy.
 
Upvote 0
Ủa? Có hỏi nữa hả. Đọc tiêu đề tưởng khoe code đầu tay nên không vô xem :D
 
Upvote 0
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom