Giúp mình về cách lấy dữ liệu từ 1 file Excel khác (1 người xem)

Liên hệ QC

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

yoyo89312

Thành viên mới
Tham gia
14/10/09
Bài viết
1
Được thích
0
Giả sử hiện giờ mình đang có 1 file Excel (Mình gọi là tập 1)dạng như sau:

MaHang ........Ten.......... GiaBan
001 .............Viết............... 5000
002........... ..Gôm .............3000

Và 1 File này (mình gọi là tập 2):

MaHang.......... GiaBan
001 ...................5000
002 ..................3000

Tập 1 và 2 là 2 file Excel riêng biệt, do giá bán thay đổi theo tháng nên mỗi tháng bên cấp trên sẽ gửi xuống tập 2 gồm mã hàng và giá bán mới. Giờ cho mình hỏi: có cách nào cho tập 1 tự động cập nhật giá bán không vậy????


Vì dụ như qua tháng sau tập 2 sẽ là:
MaHang ..........GiaBan
001 ........ .........6000
002 ..................4000

Mong cách bạn giúp đỡ, cám ơn nhiều lắm ^^
 
Lần chỉnh sửa cuối:
Theo nh­ư bạn mô tả thì có thể dùng hàm Vlookup để cập nhật giá cho những mặt hàng trên.

Tuy nhiên để có câu trả lời chính xác thì bạn phải đưa file đính kèm lên và mô tả rõ yêu cầu của bạn trong file, các trường hợp phát sinh đặc biệt...mọi nguời trên diễn đàn sẽ tham gia thảo luận để cho bạn cách giải quyết hay nhất!

Thân !
 
Code sau thuộc dạng đơn giản nhất nhưng hiệu quả cho việc này.
Yêu cầu file hang.xlsGia.xls phải để cùng Folder. Chép file ví dụ về máy trước khi thử mới tìm được file Gia.xls

Mã:
Sub Rectangle1_Click()
Dim Wb As Workbook, Sh As Worksheet
Dim Rg As Range, Cl As Range
Application.ScreenUpdating = False
Set Wb = Workbooks.Open(ThisWorkbook.Path & "\Gia.xls")
Set Sh = Wb.Sheets("Sheet1")
Set Rg = Sh.Range(Sh.[a1], Sh.[a65536].End(3)).Resize(, 2)
Sheet1.Range(Sheet1.[b2], Sheet1.[b65536].End(3)).Offset(, 1).ClearContents
For Each Cl In Sheet1.Range(Sheet1.[b2], Sheet1.[b65536].End(3))
If Not Rg.Find(Cl, , xlValues, xlWhole, xlByColumns) Is Nothing Then
Cl.Offset(, 1) = Rg.Find(Cl, , xlValues, xlWhole, xlByColumns).Offset(, 1)
Else
Cl.Offset(, 1) = 0
End If
Next
Set Cl = Nothing: Set Rg = Nothing: Set Sh = Nothing
Wb.Close: Set Wb = Nothing
Application.ScreenUpdating = True
End Sub

Có thể chép chung các tháng vào cùng 1 folder. Sửa code 1 chút là có thể tự tìm giá của tháng nào ráp vào giá của từng mặt hàng tháng đó (File cũng đổi tên cho phù hợp Ví dụ tháng 3 : 03Hang.xls và 03Gia.xls). Hoặc data có thể dồn hết vào 1 file rồi căn cứ ngày phát sinh để ráp. Code này mình chưa bẫy lỗi nếu không tìm thấy file giá.
 

File đính kèm

Lần chỉnh sửa cuối:
Chào bạn,
Theo mình hiểu, bạn có 1 file theo dõi giá cả (tập 1) cấp trên sẽ cung cấp tâp 2 và bạn muốn update gia mới từ tâp 2 -> tập 1. cách làm khá đơn giản bạn mở cả 2 file dùng hàm lookup bình thường. sau đó mỗi tháng cấp trên của bạn gửi file xuống, bạn sửa tên file cho đúng file cũ (tập 2 ) copy đè lên tâp 2 cũ, vào vào tập 1 mở Edit link và bấm vào update. Cách này bắt buộc các file tập 2 của các tháng phải có cấu trúc giống nhau( tên sheet, số cột phải giống nhau). chúc bạn thành công
 
Web KT

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

Back
Top Bottom