Copy và past dữ liệu không chèn lên dữ liệu cũ

Liên hệ QC

pt_hcl

Thành viên hoạt động
Tham gia
15/2/11
Bài viết
138
Được thích
2
GPE có thể xem giúp mình có cách nào coppy dữ liệu mà khi paste vào một vùng nào đó thì nó chỉ dán dữ liệu vào những ô trống, còn những ô có sẵn dữ liệu thì bỏ qua.
Ví dụ: vùng ("A1:A7") có dữ liệu là 1,2,3,4,5,6,7; vùng ("B1:B7") có dữ liệu là A, B, C. Mình coppy dữ liệu vùng ("A1:A7") và dán vào vùng ("B1:B7") thì dữ liệu chỉ dán vào những ô trống như kết quả minh hoạ ở vùng ("D1:D7") mình gửi kèm theo trong file!
Xin chân thành cảm ơn!
 

File đính kèm

  • copy_paste.xls
    18.5 KB · Đọc: 38
Bạn làm theo hướng dẫn trong file đính kèm
 

File đính kèm

  • copy_paste(1).xls
    24 KB · Đọc: 86
Bạn làm theo hướng dẫn trong file đính kèm
Rất cảm ơn bạn! Bạn có thể sửa lại một chút cho mình cách "chọn ô đầu tiên của vùng dịch" trực tiếp vào code được không bạn? Tức là bỏ hộp thoại đi. Ví dụ mình muốn chọn ô đầu tiên của vùng dịch là B1 thì sửa trực tiếp trong code như thế nào?
Sub Past()On Error GoTo ExitSub
Set Source = Selection
Set Destination = Application.InputBox(prompt:="Chon o dau tien cua vung dich :", Type:=8)
For i = 1 To Source.Rows.Count
For j = 1 To Source.Columns.Count
If Destination(i, j) = "" Then Destination(i, j) = Source(i, j): _
Destination(i, j).Font.Color = vbRed
Next
Next
Destination(i, j - 1).Select
ExitSub:
End Sub
 
làm theo yêu cầu của bài (từ cột A sang cột B): Selection là A1:A7

Sub Paste()
Dim Cll As Range
For Each Cll In Selection.Offset(0, 1).Cells
If Cll.Offset(0, 1) = vbNullString Then
Cll.Offset(0, -1).Copy Destination:=Cll
End If
Next
End Sub

tip:
- để paste sang chỗ khác thì điều chỉnh tham số của offset cho phù hợp.
- nếu chỉ lấy nội dung thì thay code Cll.Offset(0, -1).Copy Destination:=Cll bằng Cll = Cll(Offset(0,-1)
 
Lần chỉnh sửa cuối:
làm theo yêu cầu của bài (từ cột A sang cột B): Selection là A1:A7

Sub Paste()
Dim Cll As Range
For Each Cll In Selection.Offset(0, 1).Cells
If Cll.Offset(0, 1) = vbNullString Then
Cll.Offset(0, -1).Copy Destination:=Cll
End If
Next
End Sub

tip:
- để paste sang chỗ khác thì điều chỉnh tham số của offset cho phù hợp.
- nếu chỉ lấy nội dung thì thay code Cll.Offset(0, -1).Copy Destination:=Cll bằng Cll = Cll(Offset(0,-1)
Cảm ơn bạn! Khi mình thực hiện thì dữ liệu ở cột A dán đè lên dữ liệu cũ ở cột B bạn àh! Yêu cầu ở đây là
chỉ dán dữ liệu vào những ô trống,còn những ô có sẵn dữ liệu thì bỏ qua. Mong bạn xem lại giúp!
 
Cảm ơn bạn! Khi mình thực hiện thì dữ liệu ở cột A dán đè lên dữ liệu cũ ở cột B bạn àh! Yêu cầu ở đây là
chỉ dán dữ liệu vào những ô trống,còn những ô có sẵn dữ liệu thì bỏ qua. Mong bạn xem lại giúp!

Copy côt B pastespecial vào cột A chọn Skipblank xong OK
 
Ặc ặc...! Đơn giản vậy mà không nghỉ ra! Xin cảm ơn bạn rất nhiều!
Vậy bạn định copy (A1:A7) rồi dán Vào (B1:B7) đã có (và chừa lại) A,B,C, hay làm ngược lai ? Hiện nmhung49 đang hướng dẫn bạn là ngược lại mà:"Copy côt B pastespecial vào cột A chọn Skipblank xong OK" . Thật không hiểu nổi nữa , 2 việc này hoàn toàn khác nhau mà. Không lẽ đi miền tây lại hỏi đường đến bến xe Miền đông ! Ok
 
Vậy bạn định copy (A1:A7) rồi dán Vào (B1:B7) đã có (và chừa lại) A,B,C, hay làm ngược lai ? Hiện nmhung49 đang hướng dẫn bạn là ngược lại mà:"Copy côt B pastespecial vào cột A chọn Skipblank xong OK" . Thật không hiểu nổi nữa , 2 việc này hoàn toàn khác nhau mà. Không lẽ đi miền tây lại hỏi đường đến bến xe Miền đông ! Ok
Hì, cảm ơn bạn đã quan tâm. Cách của bạn nmhung49 cũng giúp mình hiểu thêm một cách copy paste dữ liệu và mình chỉ việc đảo lại cột dữ liệu là ổn bạn àh! Chân thành cảm ơn các bạn!
 
Web KT

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

Back
Top Bottom