Code copy có điều kiện giữa 2 sheet (1 người xem)

Liên hệ QC

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

frantliem

Thành viên mới
Tham gia
31/12/07
Bài viết
48
Được thích
0
Em đang làm 1 báo cáo. muốn viết 1 đoạn mã copy có điều kiện. nghiên cứu trên diễn đàn có nhiều bài viết, nhưng do mới học VBA nên chưa rõ lắm nên chẳng chạy được, mong các anh chị giúp đỡ:

Em muốn copy từ sheet dữ liệu sang sheet báo cáo các trường seri, giá trị với các dòng có kiểu giá trị là Y.
Thanks mấy anh chị nhiều nhiều
 

File đính kèm

Em đang làm 1 báo cáo. muốn viết 1 đoạn mã copy có điều kiện. nghiên cứu trên diễn đàn có nhiều bài viết, nhưng do mới học VBA nên chưa rõ lắm nên chẳng chạy được, mong các anh chị giúp đỡ:

Em muốn copy từ sheet dữ liệu sang sheet báo cáo các trường seri, giá trị với các dòng có kiểu giá trị là Y.
Thanks mấy anh chị nhiều nhiều
Cái này mà cũng dùng code nửa sao? sử dụng hàm là ra rồi cần gì phải code.
 
Upvote 0
Đây là 1 mảng nhỏ trong báo cáo tự động của mình. tời phần này mình bí nên cần sự trợ giúp.
 
Upvote 0
Mã:
Sub GPE()
Dim Arr, dArr, I&, K&
With Sheet2
    Arr = Range(.[A1], .[A65000].End(3)).Resize(, 4).Value
End With
ReDim dArr(1 To UBound(Arr), 1 To 2)
    For I = 2 To UBound(Arr)
    If Arr(I, 4) = "Y" Then
        K = K + 1
        dArr(K, 1) = Arr(I, 3)
        dArr(K, 2) = Arr(I, 1)
    End If
    Next I
    Sheet1.Range("A3").Resize(K, 2).Value = dArr
End Sub
Bác nhanh tay quá làm sao để em giúp đây. sao học hoài mà vẫn không tốt nghiệp mẫu giáo giống bạn nhỉ! --=0 --=0 --=0
 
Upvote 0
Em cũng mới tự mày mò tìm hiểu về VBA,
Cái code này của em nó lại làm ngược lại với YC của chủ thớt, (cứ không có Y thì nó copy, còn có Y thì nó bỏ lại +-+-+-++-+-+-++-+-+-+)
Các bác giúp Em với ạ
PHP:
Sub Dulieueee()
    Dim i As Integer
    For i = 1 To 10
    Sheets("dulieu").Select
    If Cells(i, 4).Value = Y Then
    seri = Cells(i, 3).Value
    giatri = Cells(i, 1).Value
    Sheets("Sheet1").Select
    n = Range("B1").Value
    Range("A2").Select
    ActiveCell.Offset(n, 0).Value = seri
    ActiveCell.Offset(n, 1).Value = giatri
    Else
    End If
    Next i
End Sub
 

File đính kèm

Upvote 0
Bác nhanh tay quá làm sao để em giúp đây. sao học hoài mà vẫn không tốt nghiệp mẫu giáo giống bạn nhỉ! --=0 --=0 --=0
ờ .mình cũng viết code chưa kịp thì đã thấy ông trùm gửi bài , đau thật . Mình sẽ dặn ông trùm lần sau phải từ từ , chứ ông trùm cứ làm vầy sao mình rèn luyện được
 
Upvote 0
Em cũng mới tự mày mò tìm hiểu về VBA,
Cái code này của em nó lại làm ngược lại với YC của chủ thớt, (cứ không có Y thì nó copy, còn có Y thì nó bỏ lại +-+-+-++-+-+-++-+-+-+)
Các bác giúp Em với ạ
PHP:
Sub Dulieueee()
    Dim i As Integer
    For i = 1 To 10
    Sheets("dulieu").Select
    If Cells(i, 4).Value = Y Then
    seri = Cells(i, 3).Value
    giatri = Cells(i, 1).Value
    Sheets("Sheet1").Select
    n = Range("B1").Value
    Range("A2").Select
    ActiveCell.Offset(n, 0).Value = seri
    ActiveCell.Offset(n, 1).Value = giatri
    Else
    End If
    Next i
End Sub
Bạn nên đưa dữ liệu vào mảng và đọc/xuất trên đó sẽ nhanh hơn làm trực tiếp trên ô
 
Upvote 0
:D, Em làm cho nó chạy được chính xác đã là vui rồi, lúc đầu em trót dại đặt "For i = 1 to 3000", excell treo, chờ đến khổ.
Vấn đề ở code này của em là
"Cái code này của em nó lại làm ngược lại với YC của chủ thớt, (cứ không có Y thì nó copy, còn có Y thì nó bỏ lại +-+-+-++-+-+-++-+-+-+)"

Các Bác xem giúp Em với ạ
 
Upvote 0
Bác nhanh tay quá làm sao để em giúp đây. sao học hoài mà vẫn không tốt nghiệp mẫu giáo giống bạn nhỉ! --=0 --=0 --=0

Em chạy được rồi. Nhưng không hiểu rõ lệnh anh viết. Hic. Mất căn bản+-+-+-+. Anh có tài liệu nào về VBA share cho em với. Mail của em là frantliem@yahoo.com
Xin cám ơn anh nhiều nhiều!!!!!!!!-\\/.
 
Upvote 0
Các anh xem dùm em đoạn mã sau:
Khi chạy nhiều dữ liệu, nhiều cột thì báo lỗi bác ơi!
Sheet 2 có 60 cột; cột 57 chứa dữ liệu có Y hoac không; tham chiếu lấy dữ liệu cột 59, 60, 11 vào báo cáo sheet 1.
các bác giúp em.

sub dulieu()
Dim Arr, dArr, I&, K&
With Sheet2
Arr = Range(.[A1], .[A65000].End(3)).Resize(, 4).Value
End With
ReDim dArr(1 To UBound(Arr), 2 To 4)
For I = 2 To UBound(Arr)
If Arr(I, 57) = "Y" Then
K = K + 1
dArr(K, 2) = Arr(I, 59)
dArr(K, 3) = Arr(I, 60)
dArr(K, 4) = Arr(I, 11)
End If
Next I
Sheet1.Range("B11").Resize(K, 4).Value = dArr
End Sub
 
Upvote 0
Các anh xem dùm em đoạn mã sau:
Khi chạy nhiều dữ liệu, nhiều cột thì báo lỗi bác ơi!
Sheet 2 có 60 cột; cột 57 chứa dữ liệu có Y hoac không; tham chiếu lấy dữ liệu cột 59, 60, 11 vào báo cáo sheet 1.
các bác giúp em.

sub dulieu()
Dim Arr, dArr, I&, K&
With Sheet2
Arr = Range(.[A1], .[A65000].End(3)).Resize(, 4).Value
End With
ReDim dArr(1 To UBound(Arr), 2 To 4)
For I = 2 To UBound(Arr)
If Arr(I, 57) = "Y" Then
K = K + 1
dArr(K, 2) = Arr(I, 59)
dArr(K, 3) = Arr(I, 60)
dArr(K, 4) = Arr(I, 11)
End If
Next I
Sheet1.Range("B11").Resize(K, 4).Value = dArr
End Sub
Cái này chắc phải up file lên mới xem trong file có dữ liệu nào không phù hợp chứ.
 
Upvote 0
Bạn sửa số 4 ở trên thành số 256 đi...rồi tính tiếp...

P/s: úp file lên đây nếu muốn được giải quyết nhanh chóng...

Em mới tập tành. mong anh chỉ dạy nhiều nhiều
Thanks anh nhiều thật nhiều.
Cho em địa chỉ mail của anh với.
Khi nào ra nha trang alo mời anh uống cà phê hậu tạ.
 
Upvote 0
Bạn sửa số 4 ở trên thành số 256 đi...rồi tính tiếp...

P/s: úp file lên đây nếu muốn được giải quyết nhanh chóng...

Dạ anh.
With Sheet2 .....
Sheet1.Range("B11").Resize(K, 4).Value = dArr .....

Cho em hỏi nếu mình thay thế sheet1 và sheet2 thành tên sheet mình đặt thì hàm ko chạy được
Vì nhiều sheet ko biết sheet đó là sheet số mấy khi import nhiều sheet trên cùng 1 file
 
Upvote 0

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

Back
Top Bottom