Cách tạo 1 file mới chứa giá trị từ 1 file đang mở bằng VBA

Liên hệ QC

Thanhcong1963

Thành viên mới
Tham gia
3/1/17
Bài viết
19
Được thích
0
Em muốn tạo 1 file Excel mới chỉ chứa giá trị (không có công thức) và chỉ Copy 1 vùng dữ liệu ví dụ A1:D10.
Như vậy File mới chỉ chứa giá trị các ô này. Kính đề nghị AC giúp Code VBA để thực hiện ạ. Trên diễn đàn hầu hết là Copy nguyên cả Sheet msg file mới sẽ chứa cả công thức, macro trong đó.

Cảm ơn các AC!
 
Mã:
Sub Copy()
    Dim Wb As Workbook, Ws As Worksheet
    Set Wb = Workbooks.Add
    Set Ws = Wb.Worksheets("Sheet1")
    Sheet1.Range("A1:D10").Copy Destination:=Ws.Range("A1")
    Ws.Range("A1:D10").Value = Ws.Range("A1:D10").Value
End Sub
 
Mã:
Sub Copy()
    Dim Wb As Workbook, Ws As Worksheet
    Set Wb = Workbooks.Add
    Set Ws = Wb.Worksheets("Sheet1")
    Sheet1.Range("A1:D10").Copy Destination:=Ws.Range("A1")
    Ws.Range("A1:D10").Value = Ws.Range("A1:D10").Value
End Sub

Cảm ơn AC!
Bài đã được tự động gộp:


Mỗi lần Copy nó lại hỏi File SAVE vậy làm cách nào chỉ định cho Ghi ví dụ Tên là Sheet2 = "File_Copy" chẳng hạn.
Bài đã được tự động gộp:

Mã:
Sub Copy()
    Dim Wb As Workbook, Ws As Worksheet
    Set Wb = Workbooks.Add
    Set Ws = Wb.Worksheets("Sheet1")
    Sheet1.Range("A1:D10").Copy Destination:=Ws.Range("A1")
    Ws.Range("A1:D10").Value = Ws.Range("A1:D10").Value
End Sub

Mỗi lần Copy nó lại hỏi File SAVE vậy làm cách nào chỉ định cho Ghi ví dụ Tên là Sheet2 = "File_Copy" chẳng hạn.
 
Mã:
Sub Copy()
    Dim Wb As Workbook, Ws As Worksheet
    Set Wb = Workbooks.Add
    Set Ws = Wb.Worksheets("Sheet1")
    Sheet1.Range("A1:D10").Copy Destination:=Ws.Range("A1")
    Ws.Range("A1:D10").Value = Ws.Range("A1:D10").Value
End Sub



Vấn đề là Copy xong, kiểm tra file đích toàn ô trống dù có đặt tên hay không ?
Mỗi lần Copy nó lại hỏi File SAVE vậy làm cách nào chỉ định cho Ghi ví dụ Tên là Sheet2 = "File_Copy" chẳng hạn.
 
1/ Vì file gốc chứa macro nên sau khi chép Sub Copy vào một Modul, bạn phải Save file gốc về dạng .xlms
2/ Muốn lưu file đã copy thêm dòng lệnh SaveAs cho nó. Sửa lại code như sau

Mã:
Sub Copy()
    Dim Wb As Workbook, Ws As Worksheet
    Set Wb = Workbooks.Add
    Set Ws = Wb.Worksheets("Sheet1")
    Sheet1.Range("A1:D10").Copy Destination:=Ws.Range("A1")
    Ws.Range("A1:D10").Value = Ws.Range("A1:D10").Value
    Wb.SaveAs ThisWorkbook.Path & "\ABC.xlsx"
End Sub

File mới được lưu cùng với thư mục chứa file gốc có tên là ABC.xlsx
 
Web KT
Back
Top Bottom