Làm thế nào Copy/Paste sau khi dùng Autofilter

Liên hệ QC

meocon249

Thành viên mới
Tham gia
7/4/11
Bài viết
8
Được thích
1
Nghề nghiệp
Maritimebank Đống Đa
Anh chị ơi,

Sau khi lọc các dữ liệu cần Copy bằng autofilter, em muốn Copy/Paste một loạt. Nhưng dữ liệu lại bị Paste vào cả những ô đã bị ẩn bởi lệnh Auto.

LÀm thế nào chỉ Copy/Paste trên những dữ liệu hiện hữu sau lệnh Auto mà không làm ảnh hưởng dến các dòng ẩn?

Many thankssssssssss
 
Anh chị ơi,

Sau khi lọc các dữ liệu cần Copy bằng autofilter, em muốn Copy/Paste một loạt. Nhưng dữ liệu lại bị Paste vào cả những ô đã bị ẩn bởi lệnh Auto.

LÀm thế nào chỉ Copy/Paste trên những dữ liệu hiện hữu sau lệnh Auto mà không làm ảnh hưởng dến các dòng ẩn?

Many thankssssssssss

Thay vì Copy/Paste bạn nhập công thức = (ví dụ B5=A5) rồi fill xuống (các dòng ẩn không bị ảnh hưởng)
Muốn lấy giá trị (xóa công thức) thì bạn bỏ Autofilter, chọn toàn bộ cột (vd cột B) rồi thực hiện Copy/Paste value.
 
Em đa tạ anh trung ạ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
Thay vì Copy/Paste bạn nhập công thức = (ví dụ B5=A5) rồi fill xuống (các dòng ẩn không bị ảnh hưởng)
Muốn lấy giá trị (xóa công thức) thì bạn bỏ Autofilter, chọn toàn bộ cột (vd cột B) rồi thực hiện Copy/Paste value.
Tuy nhiên, giả sử em muốn những ô được lọc được Copy và Paste Value chính vào những ô đó (xóa liên kết chỉ lấy giá trị) thì làm theo cách nào ah (những ô lọc nằm rời rạc không liền nhau)
 
Tuy nhiên, giả sử em muốn những ô được lọc được Copy và Paste Value chính vào những ô đó (xóa liên kết chỉ lấy giá trị) thì làm theo cách nào ah (những ô lọc nằm rời rạc không liền nhau)

Tôi không hiểu ý bạn: "những ô được lọc được Copy và Paste Value chính vào những ô đó" nghĩa là sao ?

Xin nói lại: muốn xóa liên kết chỉ lấy giá trị của những ô lọc nằm rời rạc không liền nhau thì tôi đã nói tại dòng 2 bài trên rồi (lựa chọn vùng muốn xóa công thức rồi thực hiện Copy và Paste Value ngay chính trên vùng đó).
 
Lần chỉnh sửa cuối:
Tôi không hiểu ý bạn: "những ô được lọc được Copy và Paste Value chính vào những ô đó" nghĩa là sao ?

Xin nói lại: muốn xóa liên kết chỉ lấy giá trị của những ô lọc nằm rời rạc không liền nhau thì tôi đã nói tại dòng 2 bài trên rồi (lựa chọn vùng muốn xóa công thức rồi thực hiện Copy và Paste Value ngay chính trên vùng đó).

Em ví dụ file em gửi đính kèm, bây giờ có cách nào mà cứ dòng nào cột A có từ nhân công thì cột B sẽ chuyển sang Value hết (các ô em bôi màu đỏ mà không ảnh hưởng đến trạng thái các ô còn lại).
 

File đính kèm

Mình cũng hay làm việc này rồi. Mình thường dùng 1 trong 2 cách:
1. Sau khi paste công thức vào những ô đó, filter chúng ra rồi dùng chức năng Fomular to Value của Add-in A-Tools. Đảm bảo không ảnh hưởng tới các ô xen kẽ còn lại. (Chú ý, nếu bảng tính cồng kềnh thì trước khi làm phải cho Caculation về Manual đã nhé)
2.Tạo một macro "copy then paste" với phím tắt nào đó, nếu có ít dòng thì cứ đến từng ô đó bấm phím tắt đó tách 1 cái là nó nhảy về giá trị.
 
Em ví dụ file em gửi đính kèm, bây giờ có cách nào mà cứ dòng nào cột A có từ nhân công thì cột B sẽ chuyển sang Value hết (các ô em bôi màu đỏ mà không ảnh hưởng đến trạng thái các ô còn lại).

Yêu cầu của bạn chỉ có VBA mới làm được. Nếu bạn muốn dùng VBA thì phản hồi để ta làm tiếp.
 
Em ví dụ file em gửi đính kèm, bây giờ có cách nào mà cứ dòng nào cột A có từ nhân công thì cột B sẽ chuyển sang Value hết (các ô em bôi màu đỏ mà không ảnh hưởng đến trạng thái các ô còn lại).
Nếu số lượng cell sau khi lọc không nhiều lắm thì ta có thể làm như sau:
- Quét chọn vùng dữ liệu mà bạn cần chuyển thành Value
- Bấm Ctrl + G\Special\Visible cells only --> ỌK
- Xong, bấm F2 rồi F9 rồi Enter rồi lại F2, F9, Enter đến khi nào activecell di chuyển đến cell cuối cùng thì ngưng
------------------
Nếu số lượng cell sau khi lọc nhiều quá, không thể làm bằng tay theo cách trên thì... VBA
 
Yêu cầu của bạn chỉ có VBA mới làm được. Nếu bạn muốn dùng VBA thì phản hồi để ta làm tiếp.
Vâng, cái vụ VBA thì trình của em vẫn còi lắm, phiền bác chỉ bảo cho em với.
(Nhưng có thể nếu được bác có thời gian nghiên cứu hộ em cách thông thường nữa bác nhé, em tin là có thể làm ra vấn đề này đấy, Bác không biết công việc em hằng ngày làm thầu, thanh toán xử lý nhanh em hay phải làm kiểu này lắm, nhiều khi copy từng thằng nghĩ cũng tức lắm)
 
Nếu số lượng cell sau khi lọc không nhiều lắm thì ta có thể làm như sau:
- Quét chọn vùng dữ liệu mà bạn cần chuyển thành Value
- Bấm Ctrl + G\Special\Visible cells only --> ỌK
- Xong, bấm F2 rồi F9 rồi Enter rồi lại F2, F9, Enter đến khi nào activecell di chuyển đến cell cuối cùng thì ngưng
------------------
Nếu số lượng cell sau khi lọc nhiều quá, không thể làm bằng tay theo cách trên thì... VBA
Thày chưa ngủ ah? như vậy là cái vụ F2, F9 nó tương đương với Paste Spaceal hả thày? nhưng em thắc mắc là cái dòng Ctrl + G\Special\Visible cells only ý nghĩa là gì nhỉ?
Thực ra thì hiện tại em chưa cần sử dụng đến bài toán này ngay, đó là thi thoảng em sưu tầm các tình huống em thường mắc để học thêm thày ạh, em cảm ơn thày và mọi người rất nhiều.
 
vậy là cái vụ F2, F9 nó tương đương với Paste Spaceal hả thày
Gần như vậy. Vì bấm F2 sẽ chuyển cell sang chế độ Edit, xong, bấm F9 sẽ tính toán giá trị của cell... Enter 1 cái thì xem như ta "chốt" kết quả rồi
nhưng em thắc mắc là cái dòng Ctrl + G\Special\Visible cells only ý nghĩa là gì nhỉ?
.
Để chọn duy nhất những cell đang hiện mà thôi (không chọn cell ẩn
 
Vâng, cái vụ VBA thì trình của em vẫn còi lắm, phiền bác chỉ bảo cho em với.
(Nhưng có thể nếu được bác có thời gian nghiên cứu hộ em cách thông thường nữa bác nhé, em tin là có thể làm ra vấn đề này đấy, Bác không biết công việc em hằng ngày làm thầu, thanh toán xử lý nhanh em hay phải làm kiểu này lắm, nhiều khi copy từng thằng nghĩ cũng tức lắm)

Em cũng muốn bít làm theo VBA thế nào anh Trung ạ! Thanksssssssssssss
 
Em ví dụ file em gửi đính kèm, bây giờ có cách nào mà cứ dòng nào cột A có từ nhân công thì cột B sẽ chuyển sang Value hết (các ô em bôi màu đỏ mà không ảnh hưởng đến trạng thái các ô còn lại).
Tôi làm như thế này:
- Lọc ra các dòng không chứa chữ nhân côn ở cột Định mức
- Chọn các ô hiện ở cột Giá trị, dùng Find and Replace thay thế dấu bằng (=) bằng một chuỗi ký tự khác (ví dụ !@#, cái chuỗi ký tự này tự bạn chọn sao cho đảm bảo dữ liệu trong cột Giá trị không có chuỗi này)
- Bỏ Auto Filter
- Copy, Paste value cột Giá trị
- Dùng Find and Replace thay thế chuỗi ký tự mà bạn đã dùng trước đó (!@#) bằng dấu bằng (=)
 
Cảm ơn bác Hữu Thắng, cách làm của Bác rất sáng tạo.
 
Em cũng muốn bít làm theo VBA thế nào anh Trung ạ! Thanksssssssssssss

Bạn dùng code sau
Mã:
Sub Macro1()
On Error Resume Next
    For Each cls In [COLOR="red"][B][SIZE="3"][a:a][/SIZE][/B][/COLOR].SpecialCells(2)
        If cls = "[COLOR="red"][B][SIZE="3"]Nhân công[/SIZE][/B][/COLOR]" Then cls(1, 2) = cls(1, 2).Value
    Next
End Sub

Trường hợp biểu của bạn không giống như bài này thì bạn phải sửa lại code (sửa lại chữ màu đỏ trong code). Cách sửa như sau:

1. Sửa địa chỉ của cột định mức: Vd cột định mức nằm ở cột D thì sửa [a:a] thành [d:d]

2. Sửa lại điều kiện tìm: vd bạn muốn thực hiện với điều kiện là Vật liệu thì sửa Nhân công thành Vật liệu (chú ý sửa bằng cách copy chữ Vật liệu từ bảng tính để Paste vào code - không nên nhập bằng bàn phím để tránh lỗi Font chữ).
 

File đính kèm

Web KT

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

Back
Top Bottom