Tìm kiếm và copy giá trị từ bảng đến bảng khác

Liên hệ QC

vnproc

Thành viên hoạt động
Tham gia
1/2/11
Bài viết
150
Được thích
6
Chào mọi người,

Mình đang có 1 bảng có các giá trị tổng tháng các mã hàng theo các cột. Mình cần viết 1 module VBA để copy các giá trị đến bảng 2 có các mã hàng tương ứng.
Mong mọi người giúp đỡ.

Cảm ơn

(File mẫu mình đính kèm ở đây)
 

File đính kèm

  • VBA_Copy.xlsx
    14.6 KB · Đọc: 13
Mình biết có thể dùng hàm từ Excel. Nhưng đây là mẫu mình đưa lên còn thực thế các tháng sẽ phát sinh nhiều nữa.
Với lại mình cũng đang học VBA :D
Nhất định phải là code thì thử code này coi sao?
Mã:
Sub ABC()
    Dim Thang, Rng As Range, iR&
    With Sheet1
        Thang = .Range("C2").Value2
        iR = .Range("C" & Rows.Count).End(3).Row
        Set Rng = .Range("C7:C" & iR)
        If .Rows("7:7").Find(Thang).Column > 0 Then
            Rng.Copy .Range("P7")
            .Cells(8, .Rows("7:7").Find(Thang).Column).Resize(Rng.Rows.Count - 1).Copy .Range("Q8")
        End If
    End With
End Sub
 
Upvote 0
Nhất định phải là code thì thử code này coi sao?
Mã:
Sub ABC()
    Dim Thang, Rng As Range, iR&
    With Sheet1
        Thang = .Range("C2").Value2
        iR = .Range("C" & Rows.Count).End(3).Row
        Set Rng = .Range("C7:C" & iR)
6        If .Rows("7:7").Find(Thang).Column > 0 Then
            Rng.Copy .Range("P7")
            .Cells(8, .Rows("7:7").Find(Thang).Column).Resize(Rng.Rows.Count - 1).Copy .Range("Q8")
        End If
    End With
End Sub
Câu lệnh mang số 6 của bạn chứa lỗi tiềm tàng
Ví dụ trong cả dòng 7 không có Thang (do nhập sai chính tả,. . . ) thì sẽ ra sao?!
 
Upvote 0
Câu lệnh mang số 6 của bạn chứa lỗi tiềm tàng
Ví dụ trong cả dòng 7 không có Thang (do nhập sai chính tả,. . . ) thì sẽ ra sao?!
Cám ơn chú nhắc nhở. Code không bẫy lỗi. Thớt có thể dựa vào gợi ý trên tự bẫy lỗi
 
Upvote 0
Nhất định phải là code thì thử code này coi sao?
Mã:
Sub ABC()
    Dim Thang, Rng As Range, iR&
    With Sheet1
        Thang = .Range("C2").Value2
        iR = .Range("C" & Rows.Count).End(3).Row
        Set Rng = .Range("C7:C" & iR)
        If .Rows("7:7").Find(Thang).Column > 0 Then
            Rng.Copy .Range("P7")
            .Cells(8, .Rows("7:7").Find(Thang).Column).Resize(Rng.Rows.Count - 1).Copy .Range("Q8")
        End If
    End With
End Sub
Cảm ơn bạn nhiều nhé.
 
Upvote 0
. . . . Nhập tháng của năm vào C2
Khi click Copy thì chức năng sẽ copy các giá trị tương ứng với C2 từ bảng sp theo Mahang sang bang Tongthang
Bài tập dành cho @Chủ bài đăng:
(Thay vì nhập chuỗi tháng-năm vô ô C2) Ta tạo tại [C2] 1 ComboBox với nguồn của nó là các trị tháng-năm từ/của dòng 7
Lúc đó ta biến macro ở #4 thành 1 macro sự kiện để cho ta kết quả báo cáo cần thiết

[Nếu sau 36 giờ mà chủ bài đăng chưa viết được thì sẽ được giúp, phải vậy không các tác giả bài đăng trong chủ đề này!]
 
Upvote 0
Bài tập dành cho @Chủ bài đăng:
(Thay vì nhập chuỗi tháng-năm vô ô C2) Ta tạo tại [C2] 1 ComboBox với nguồn của nó là các trị tháng-năm từ/của dòng 7
Lúc đó ta biến macro ở #4 thành 1 macro sự kiện để cho ta kết quả báo cáo cần thiết

[Nếu sau 36 giờ mà chủ bài đăng chưa viết được thì sẽ được giúp, phải vậy không các tác giả bài đăng trong chủ đề này!]
Cảm ơn bạn.

Mình đã test chức năng trên. Nhưng có 1 vấn đề là khi bảng cần lấy có ít mã hàng hơn thì chức năng vẫn copy nguyên sang các mã hàng ko cần lấy.
Chức năng không vlookup mã hàng từ bảng 1 sang 2 và lấy số lượng từ bảng 1 theo mã hàng

Ví dụ Mình chỉ cần lấy ngẫu nhiên trong bảng này 2 mã hàng của tháng 2/2023
Bảng 1
MahangTên SpJan '23W1W2Feb '23
100ASp 1A
1,001​
122​
122​
229​
100BSP 1B
181​
125​
125​
366​
200ASP 2A
229​
128​
128​
15​
200BSP 2B
39​
131​
131​
7​
210CSP 2C
820​
134​
134​
956​

Bảng 2
MahangTong Tháng
100A
229​
100B
366​

Cảm ơn
 
Upvote 0
Web KT
Back
Top Bottom