tranvietdung
Thành viên mới
- Tham gia
- 24/9/08
- Bài viết
- 31
- Được thích
- 6
ý mình là ô paste tương ứng là giá trị tuyệt đối chứ kô phải = ô trước đó. như ở Vd
Sub Cop()
Dim Cll As Range
For Each Cll In Selection
If InStr(Cll.Formula, "!") Then
Cll.Copy: Cll.Offset(, 1).PasteSpecial xlPasteValues
Else
Cll.Copy: Cll.Offset(, 1).PasteSpecial xlPasteAll
End If
Next Cll
End Sub
vậy thì tèo rồi. trong paste special có cái nào được không bác.
Sub Cop()
Dim Cll As Range
For Each Cll In Selection
If InStr(Cll.Formula, "SUM(") Then
Cll.Copy: Cll.Offset(, 1).PasteSpecial xlPasteAll
Else
Cll.Copy: Cll.Offset(, 1).PasteSpecial xlPasteValues
End If
Next Cll
Application.CutCopyMode = False
End Sub
bạn không làm kịch bản thu macro xẹm saonhờ các bác chỉ dùm cách coppy từ côt này paste sang cột khác mà ô có công thức giữ nguyên công thức, còn ô khác lấy giá trị của ô coppy.
Tội gì dùng vòng lặp. Dùng Find and Replace kết hợp với Paste Special sẽ nhanh hơn. Làm như thế này:Nếu chỉ có hàm SUM mới như vậy thì sửa code lại chút thôi. Bôi đen vùng muốn Copy rồi nhấn nút.
Xem File.PHP:Sub Cop() Dim Cll As Range For Each Cll In Selection If InStr(Cll.Formula, "SUM(") Then Cll.Copy: Cll.Offset(, 1).PasteSpecial xlPasteAll Else Cll.Copy: Cll.Offset(, 1).PasteSpecial xlPasteValues End If Next Cll Application.CutCopyMode = False End Sub