Tham chiếu ô

  • Thread starter Thread starter pat_ftu
  • Ngày gửi Ngày gửi
Liên hệ QC

pat_ftu

Thành viên mới
Tham gia
16/1/07
Bài viết
19
Được thích
2
Em đang gõ đoạn code sau, không hiểu sao VBA báo lỗi (dòng chữ đỏ). Anh/Chị nào biết bảo giùm em với ạ. Em cảm ơn nhiều ạ!

Sub do_thi()
Dim i, k As Integer

k = Worksheets("Daily").Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To k
If Worksheets("Daily").Cells(i, 1).Value = Worksheets("Report").Cells(25, 2).Value Then
Worksheets("Daily").Range(Cells(1, 1), Cells(i, 1)).Copy
Worksheets("Tham so").Range("CO1").PasteSpecial.xlPasteValues
End If
Next i


End Sub
 
Em đang gõ đoạn code sau, không hiểu sao VBA báo lỗi (dòng chữ đỏ). Anh/Chị nào biết bảo giùm em với ạ. Em cảm ơn nhiều ạ!

Sub do_thi()
Dim i, k As Integer

k = Worksheets("Daily").Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To k
If Worksheets("Daily").Cells(i, 1).Value = Worksheets("Report").Cells(25, 2).Value Then
Worksheets("Daily").Range(Cells(1, 1), Cells(i, 1)).Copy
Worksheets("Tham so").Range("CO1").PasteSpecial.xlPasteValues
End If
Next i


End Sub
Cho cái file lên xem nào bạn.
 
Upvote 0
Muốn thao tác copy hay paste thì phải active sheet đó lên.
Mã:
Worksheets("Sheet1").Activate
'Sau đó là câu lệnh copy
Worksheets("Sheet2").Activate
'Sau đó là câu lệnh Paste

Tham khảo thêm: bài viết.
 
Lần chỉnh sửa cuối:
Upvote 0
Muốn thao tác copy hay paste thì phải active sheet đó lên.
Mã:
Worksheets("Sheet1").Activate
'Sau đó là câu lệnh copy
Worksheets("Sheet2").Activate
'Sau đó là câu lệnh Paste

Tham khảo thêm: bài viết.
Trong VBA, code dỡ nhất là dùng câu lệnh Select, vì nó làm cho code chạy chậm.
 
Upvote 0
em cảm ơn mọi người ạ nhưng em thử làm thì chạy được nhưng báo lỗi :(
em gửi file kèm, mọi người xem giúp em nhé.
 

File đính kèm

Upvote 0
Ý tưởng của mình là:
Sheet 1: Nhập ngày
Sheet 2: Chứa dữ liệu ngày và số liệu theo ngày
Sheet 3: Xuất dữ liệu từ ngày bắt đầu đến ngày nhập tại Sheet 1.
Ban thu.
Mã:
Sub laydulieu()
     Dim arr, i As Long, a As Long, lr As Long, ngay As Long, kq
     With Sheets("daily")
          lr = .Range("A" & Rows.Count).End(xlUp).Row
          arr = .Range("A1:B" & lr).Value2
          ReDim kq(1 To UBound(arr), 1 To 2)
     End With
     With Sheets("report")
          ngay = .Range("b25").Value2
     End With
         For i = 1 To UBound(arr)
             If ngay >= arr(i, 1) Then
                a = a + 1
                kq(a, 1) = arr(i, 1)
                kq(a, 2) = arr(i, 2)
             End If
         Next i
    With Sheets("tham so")
         lr = .Range("Co" & Rows.Count).End(xlUp).Row
         .Range("Co1:Co" & lr).ClearContents
         If a Then .Range("Co1").Resize(a, 2).Value = kq
    End With
End Sub
 
Upvote 0
Ban thu.
Mã:
Sub laydulieu()
     Dim arr, i As Long, a As Long, lr As Long, ngay As Long, kq
     With Sheets("daily")
          lr = .Range("A" & Rows.Count).End(xlUp).Row
          arr = .Range("A1:B" & lr).Value2
          ReDim kq(1 To UBound(arr), 1 To 2)
     End With
     With Sheets("report")
          ngay = .Range("b25").Value2
     End With
         For i = 1 To UBound(arr)
             If ngay >= arr(i, 1) Then
                a = a + 1
                kq(a, 1) = arr(i, 1)
                kq(a, 2) = arr(i, 2)
             End If
         Next i
    With Sheets("tham so")
         lr = .Range("Co" & Rows.Count).End(xlUp).Row
         .Range("Co1:Co" & lr).ClearContents
         If a Then .Range("Co1").Resize(a, 2).Value = kq
    End With
End Sub
Cảm ơn bạn nhé!
 
Upvote 0
Web KT

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

Back
Top Bottom