Copy vùng dữ liệu tùy chọn từ file khác...

Liên hệ QC

nqdn2010

Optimal Сasual Dating - Actual Girls
Tham gia
22/2/12
Bài viết
267
Được thích
15
Giới tính
Nam
Nghề nghiệp
Health
Từ tối tới giờ tôi Search mãi không ra bài tương tự, xin có yêu cầu sau:
- Bước 1: Khi Click nút lệnh "Copy" thì mở file tùy chọn cần lấy dữ liệu (tạm gọi File dữ liệu)
- Bước 2: Hiện Inputbox để chọn vùng cần copy
- Bước 3: Tự trở về sheet trước đó (vì sheet copy là sheet ngẫu nhiên)
- Bước 4: Hiện Inputbox để chọn vùng paste
- Bước 5: Paste dữ liệu - Bước 6: Đóng lại File dữ liệu.
Trong File đính kèm Tôi bị khó từ bước 2 và 3.
Mong các bạn tối ưu code để thực hiện yêu cầu hoặc viết code mới thực hiện được 5 bước.
Cám ơn!
 

File đính kèm

Từ tối tới giờ tôi Search mãi không ra bài tương tự, xin có yêu cầu sau:
- Bước 1: Khi Click nút lệnh "Copy" thì mở file tùy chọn cần lấy dữ liệu (tạm gọi File dữ liệu)
- Bước 2: Hiện Inputbox để chọn vùng cần copy
- Bước 3: Tự trở về sheet trước đó (vì sheet copy là sheet ngẫu nhiên)
- Bước 4: Hiện Inputbox để chọn vùng paste
- Bước 5: Paste dữ liệu - Bước 6: Đóng lại File dữ liệu.
Trong File đính kèm Tôi bị khó từ bước 2 và 3.
Mong các bạn tối ưu code để thực hiện yêu cầu hoặc viết code mới thực hiện được 5 bước.
Cám ơn!
Góp ý cho bạn:
1/ Nên lấy dữ liệu của sheet muốn tra vào File đang sử dụng luôn rồi muốn tra bất kỳ thứ gì thì dựa vào sheet này cho thuận tiện.
2/ Muốn làm cái gì đó thì nên nêu cụ thể cái mình muốn làm rồi đưa File thực tế lên để các thành viên hướng dẫn hoặc đưa ra 1 giải pháp khác phù hợp hơn, chứ không nên bắt người khác làm theo cái suy nghĩ của mình (đi đường vòng).
 
Upvote 0
Từ tối tới giờ tôi Search mãi không ra bài tương tự, xin có yêu cầu sau:
- Bước 1: Khi Click nút lệnh "Copy" thì mở file tùy chọn cần lấy dữ liệu (tạm gọi File dữ liệu)
- Bước 2: Hiện Inputbox để chọn vùng cần copy
- Bước 3: Tự trở về sheet trước đó (vì sheet copy là sheet ngẫu nhiên)
- Bước 4: Hiện Inputbox để chọn vùng paste
- Bước 5: Paste dữ liệu - Bước 6: Đóng lại File dữ liệu.
Trong File đính kèm Tôi bị khó từ bước 2 và 3.
Mong các bạn tối ưu code để thực hiện yêu cầu hoặc viết code mới thực hiện được 5 bước.
Cám ơn!
Bước 3: chỉ cần thêm đoạn code ThisWorkbook.Activate là được rồi
Mã:
ThisWorkbook.Activate
    Set rngDestination = Application.InputBox("Chon vung can PASTE:", "CHON VUNG PASTE", Type:=8)
Bước 6: phải tính lại vì trong trường hợp bạn mở 1 file để lấy dữ liệu rồi đóng lại sẽ không nói làm gì (chỉ cần thêm đoạn code mybook.Close False ở cuối code là xong. Tức đóng là không lưu). Tuy nhiên có trường hợp File dữ liệu đang mở sẵn thì sao? Ta có đóng File dữ liệu hay không? Nếu đóng thì lưu hay không lưu?
 
Upvote 0
Cám ơn sự chia sẽ của 2 Anh
Góp ý cho bạn:
1/ Nên lấy dữ liệu của sheet muốn tra vào File đang sử dụng luôn rồi muốn tra bất kỳ thứ gì thì dựa vào sheet này cho thuận tiện.
2/ Muốn làm cái gì đó thì nên nêu cụ thể cái mình muốn làm rồi đưa File thực tế lên để các thành viên hướng dẫn hoặc đưa ra 1 giải pháp khác phù hợp hơn, chứ không nên bắt người khác làm theo cái suy nghĩ của mình (đi đường vòng).
Thực tế tôi làm gần giống như vậy. File nguồn lấy dữ liệu và vùng lấy là không cố định, còn File đích và vùng cần Paste cũng không cố định.

Bước 6: phải tính lại vì trong trường hợp bạn mở 1 file để lấy dữ liệu rồi đóng lại sẽ không nói làm gì (chỉ cần thêm đoạn code mybook.Close False ở cuối code là xong. Tức đóng là không lưu). Tuy nhiên có trường hợp File dữ liệu đang mở sẵn thì sao? Ta có đóng File dữ liệu hay không? Nếu đóng thì lưu hay không lưu?
Theo hướng Anh để Em Test thử. Khi File đóng thì cần đóng lại, còn File mở thì để mở không sao?
Bài đã được tự động gộp:

Ok rồi! Em đã làm được rồi. Cám ơn sự hướng dẫn của hai anh
 
Lần chỉnh sửa cuối:
Upvote 0
Xin hỏi thêm nếu chỉ cho copy 1 cột (chọn cột bất kỳ, VD: "C8:C57" hoặc "V5:V100") thì thêm điều kiện gì ?
 
Upvote 0
Xin hỏi thêm nếu chỉ cho copy 1 cột (chọn cột bất kỳ, VD: "C8:C57" hoặc "V5:V100") thì thêm điều kiện gì ?
Muốn chọn cột nào thì cứ chọn trong hộp InputBox thôi chứ bạn còn muốn sao nữa?
Nếu bạn biết trước sẽ copy vùng nào thì không cần InputBox, ghi thằng tham chiếu vào code luôn. Vậy thôi
 
Upvote 0
Vì có những dữ liệu nguồn chỉ cần lấy 1 cột nhưng chưa biết trước ở cột nào. Sợ khi copy sẽ hỏng Format bảng tính, 1 số người không biết copy value
 
Upvote 0
Vì có những dữ liệu nguồn chỉ cần lấy 1 cột nhưng chưa biết trước ở cột nào. Sợ khi copy sẽ hỏng Format bảng tính, 1 số người không biết copy value
Ý bạn là bạn chỉ cần 1 cột nhưng đôi khi người dùng chọn nhiều cột khiến kết quả bị sai? Nếu đúng vậy thì bạn làm thêm động tác Resize(,1) là xong. Ví dụ:
Set rngSource = Application.InputBox("Chon vung can COPY:", "CHON VUNG COPY", Type:=8)
Set rngSource = rngSource.Resize(, 1)
 
Upvote 0
Đúng ý em rồi, Thank you. Để em Test, có gì mong anh chỉ giúp.
 
Upvote 0
Hay Thank you, ràng buộc cao.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom