COPY DỮ LIỆU (BAO GỒM ĐINH DẠNG) SANG WORKBOOK MỚI

Liên hệ QC

yamakashi2003

Thành viên mới
Tham gia
19/2/20
Bài viết
15
Được thích
0
Em chào ace trong grou ạ,
Anh chị cho em hỏi em muốn copyt dữ liệu từ sheet "EDIT" sang sheet 1 ở 1 file excel mới nên dùng hàm GetDataArray (hàm đã đc tao ở module khác) để copy dữ liệu lên mảng sau đó gán sang sheet 1 ở workbook mới. Nhưng vấn đề là định dạng dữ liệu (font chữ, màu, kẻ bảng, ....) ở sheet mới mới đều mất hết. Giờ em muốn copy cả định dạng của dữ liệu trong sheet "EDIT" ở file excel hiện hành sang file excel mới thì nên sửa đoạn code bên dưới ra sao ạ,
Mong ac chỉ giúp, em xin cảm ơn
Sub abc()

Dim sh As Worksheet

Dim ArrSrc As Variant

Dim rngFirtsDest As Range

Set sh = ThisWorkbook.Sheets("EDIT")

ArrSrc = GetDataArray(sh, "A3", "K", "A")

Workbooks.Add

Set rngFirtsDest = Range("A2")

rngFirtsDest.Resize(UBound(ArrSrc, 1), UBound(ArrSrc, 2)).Value2 = ArrSrc

End Sub
 
Em chào ace trong grou ạ,
Anh chị cho em hỏi em muốn copyt dữ liệu từ sheet "EDIT" sang sheet 1 ở 1 file excel mới nên dùng hàm GetDataArray (hàm đã đc tao ở module khác) để copy dữ liệu lên mảng sau đó gán sang sheet 1 ở workbook mới. Nhưng vấn đề là định dạng dữ liệu (font chữ, màu, kẻ bảng, ....) ở sheet mới mới đều mất hết. Giờ em muốn copy cả định dạng của dữ liệu trong sheet "EDIT" ở file excel hiện hành sang file excel mới thì nên sửa đoạn code bên dưới ra sao ạ,
Mong ac chỉ giúp, em xin cảm ơn
Sub abc()

Dim sh As Worksheet

Dim ArrSrc As Variant

Dim rngFirtsDest As Range

Set sh = ThisWorkbook.Sheets("EDIT")

ArrSrc = GetDataArray(sh, "A3", "K", "A")

Workbooks.Add

Set rngFirtsDest = Range("A2")

rngFirtsDest.Resize(UBound(ArrSrc, 1), UBound(ArrSrc, 2)).Value2 = ArrSrc

End Sub
bạn phải đổi GetDataArray thành CopyDataPasterToRange
 
Upvote 0
Đúng rồi chứ cái hàm GetDataArray y ở đâu ma có?
 
Upvote 0
Chắc là thế này.

Mã:
Sub abc(ByVal srcRange As Range, ByVal destCell As String)
'    sao chep vung srcRange sang tap tin tao moi vao o destCell
Dim wb As Workbook
    srcRange.copy
    Set wb = Workbooks.Add
    With wb.Worksheets(1).Range(destCell)
        .PasteSpecial
        .PasteSpecial xlPasteColumnWidths
    End With
    Application.CutCopyMode = False
End Sub

Ví dụ về sử dụng sub abc
Mã:
Sub test()
'    sao chep vung A26:K44 tu sheet EDIT trong tap tin co code sang tap tin moi vao o A2
    abc ThisWorkbook.Worksheets("EDIT").Range("A26:K44"), "A2"
End Sub
 
Upvote 0
Chắc là thế này.

Mã:
Sub abc(ByVal srcRange As Range, ByVal destCell As String)
'    sao chep vung srcRange sang tap tin tao moi vao o destCell
Dim wb As Workbook
    srcRange.copy
    Set wb = Workbooks.Add
    With wb.Worksheets(1).Range(destCell)
        .PasteSpecial
        .PasteSpecial xlPasteColumnWidths
    End With
    Application.CutCopyMode = False
End Sub

Ví dụ về sử dụng sub abc
Mã:
Sub test()
'    sao chep vung A26:K44 tu sheet EDIT trong tap tin co code sang tap tin moi vao o A2
    abc ThisWorkbook.Worksheets("EDIT").Range("A26:K44"), "A2"
End Sub
em cám ơn bác hướng dẫn, nhưng code trên là dùng range thì em biết rồi ạ,
ý em là muốn hỏi về code đưa giữ liệu vào mảng để copy cho nhanh, nhưng khi dán dữ liệu vẫn có thể giữ nguyên định dạng của dữ liệu
 
Upvote 0
Hihi nhu cầu của mỗi người ngày 1 cao anh @batman1 ơi hihi. Cái vấn đề này em cũng đang thắc méc đây tuy là em đã làm được nhưng thấy chưa hài lòng lắm
 
Upvote 0
Chắc là thế này.

Mã:
Sub abc(ByVal srcRange As Range, ByVal destCell As String)
'    sao chep vung srcRange sang tap tin tao moi vao o destCell
Dim wb As Workbook
    srcRange.copy
    Set wb = Workbooks.Add
    With wb.Worksheets(1).Range(destCell)
        .PasteSpecial
        .PasteSpecial xlPasteColumnWidths
    End With
    Application.CutCopyMode = False
End Sub

[/code]
Bác ơi cho em hỏi dòng code trên báo lỗi : The picture is tô large and will be truncated
nếu bỏ dòng lệnh: Application.cutcopymode = false, thì không bị báo lỗi nữa,
Cho em hỏi sao nó lại báo lỗi này ạ
 
Upvote 0
Web KT
Back
Top Bottom