Sao chép dữ liệu giữa các sổ làm việc bằng Excel VBA.
Xin chào
Tôi có một cột dữ liệu trong một bảng tính mà tôi muốn tìm dữ liệu tương ứng trong một bảng tính khác. Các giá trị tương tự như sau (ví dụ: 410GT hoặc 560XTR), bao gồm cả số và chữ cái. Câu hỏi của tôi là, liệu sử dụng câu lệnh IF, AND, OR sẽ tốt hơn hay câu lệnh Select Case sẽ là lựa chọn phù hợp hơn? Tôi là người mới học VBA. Tôi đã từng làm việc với câu lệnh IF nhưng có vẻ nó khá phức tạp. Bảng tính kia (bảng tính mà tôi đang cố gắng tìm dữ liệu trùng khớp) có 4 danh mục và 25 trường hợp khác nhau như ví dụ trên. Tôi sẽ lặp qua cột của bảng tính đầu tiên với các câu lệnh khác xen kẽ. Tôi đã xem một số video về Select Case nhưng vẫn chưa hiểu rõ và đôi khi kịch bản trong video không hoàn toàn phù hợp với những gì bạn đang cố gắng thực hiện. Rất mong nhận được sự giúp đỡ về vấn đề này. Cảm ơn một lần nữa.
Trả lời:
Miễn là các giá trị của bạn không chỉ đơn thuần là số, chúng sẽ luôn được xử lý như một chuỗi ký tự.
Nếu bạn chỉ đang cố gắng so khớp các giá trị, bạn có (ít nhất) hai cách tiếp cận khả thi;
Lặp lại phạm vi bạn đang tìm kiếm sự trùng khớp (Tôi thích cách này nếu không thể sắp xếp dữ liệu và có nhiều hơn một kết quả trùng khớp).
Đặt MyCurrentValue = Sheet1.range ("D12").value
Với i từ 1 đến 100
nếu Sheet2.range("D" *& i).value = MyCurrentValue thì
'mã cần thực thi'
kết thúc nếu
Kế tiếp
Hoặc tìm kiếm toàn bộ phạm vi nếu bạn tự tin rằng sẽ không bao giờ có nhiều hơn một giá trị trùng khớp.
Đặt MyCurrentValue = Sheet1.range ("D12").value
x = application.match(MyCurrentValue, Sheet2.range("D1:D100"),0)
(sau đó thêm mã để xử lý kết quả khớp)
HTH
Comments
Post a Comment