Paste dữ nguyễn công thức trong cột

Liên hệ QC

tranvietdung

Thành viên mới
Tham gia
24/9/08
Bài viết
31
Được thích
6
nhờ 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.
 

File đính kèm

Bạn bôi đen vùng muốn Copy rồi chạy code sau :

PHP:
Sub Cop()
    Dim Cll As Range
    For Each Cll In Selection
        Cll.Offset(, 1).Formula = Cll.Formula
    Next
End Sub
Xem thêm file đính kèm.
 

File đính kèm

ý mình là ô paste tương ứng là giá trị tuyệt đối chứ kô phải = ô trước đó. như ở Vd
 

File đính kèm

ý mình là ô paste tương ứng là giá trị tuyệt đối chứ kô phải = ô trước đó. như ở Vd

Cái này hơi xương đây, bạn lưu ý rằng =SUM(A1:A3)=Sheet1!A3 đều là công thức, là Formula hết. Các số 1, 2, 4 trong ví dụ đâu phải là giá trị gõ vào đâu, tụi nó được liên kết từ Sheet1 qua, nếu bạn muốn làm như yêu cầu thì cần có dấu hiệu khác để nhận biết ô nào cần Copy công thức, ô nào cần Copy giá trị. Lúc nào cũng dùng hàm SUM hay sao? Ở đây tôi làm ví dụ này theo trường hợp mấy cái số 1, 2, 4 đó bạn link từ Sheet khác (trong công thức có dấu "!") còn không thì...tèo.

PHP:
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
Xem thử xem.
 

File đính kèm

Lần chỉnh sửa cuối:
vậy thì tèo rồi. trong paste special có cái nào được không bác.
 
vậy thì tèo rồi. trong paste special có cái nào được không bác.

Làm được nếu bạn chỉ ra được =SUM(A1:A3), =Sheet1!A3=A3 khác nhau như thế nào --=0--=0--=0, trong 3 cái đó cái nào cần copy công thức, cái nào thì cần copy giá trị. Nếu lúc nào cũng là SUM thì mọi chuyện lại đơn giản.
 
cần coppy công thức sum còn lại các ô trong cột cần coppy giá trị. vì mình có rất nhiều sheet. nếu không coppy giá trị không thì khi thay đổi giá trị trong sheet 1 thì giá trị các sheet khác sẽ thay đổi, mà minh muốn chúng cố định khi coppy sang.
 
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.

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
Xem File.
 

File đính kèm

Lần chỉnh sửa cuối:
nhờ 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.
bạn không làm kịch bản thu macro xẹm sao
Sub Macro2()
'
' Macro2 Macro
' Macro recorded 10/3/2009 by ACER
'
'
Range("A2").Select
ActiveCell.FormulaR1C1 = "=SUM(R3C1:R5C1)"
Range("A3").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R3C1"
Range("A4").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R4C1"
Range("A5").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R6C1"
Range("A2:A5").Select
Selection.Copy
Range("B2").Select
ActiveSheet.Paste
Range("A2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[3]C)"
Range("A3").Select
ActiveCell.FormulaR1C1 = "=Sheet1!RC"
Range("A4").Select
ActiveCell.FormulaR1C1 = "=Sheet1!RC"
Range("A5").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R[1]C"
Range("A6").Select
End Sub

Cái này là toàn bộ cuộn film đó
Mình không biết gì về VBA đâu
Nếu có sai xin bạn đừng cười nhé
Chúc bạn vui khỏe
 
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.

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
Xem File.
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:
Replace =Sum( with xxxxxx
Copy and Paste Special
Replace xxxxxx with =Sum(
 
Web KT

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

Back
Top Bottom