Kết quả 1 đến 9 của 9

Chủ đề: Hỏi cách copy nhanh dữ liệu từ sheet này sang khác bằng Visual bacsic

  1. #1
    Ricky1990 Guest

    Hỏi cách copy nhanh dữ liệu từ sheet này sang khác bằng Visual bacsic

    Xin chào các Thành Excel [IMG]images/smilies/a44.gif[/IMG]

    Sếp em vừa đưa em 1 file pdf để convert dữ liệu qua excel để sếp phân tích. Còn em bây giờ đang rối lắm ạ, sau khi convert qua em có 720 sheet, bây giờ phải gộp lại thành 1 sheet duy nhất để dễ nhìn...

    Mình có tổng cộng 720 sheet và 1 sheet tên TỔNG HỢP.
    Làm thế nào để tạo 1 button có thể hoạt động trên tất cả các sheet, với hành động cụ thể là Xác định sheet đang làm việc (ActiveWindow) copy nội dung từ Range("A1:L20") của sheet đó => qua sheet TỔNG HỢP => Sau đó hide sheet đó đi. End macro [IMG]images/smilies/a42.gif[/IMG]

    Mình muốn tạo Button để kiểm soát từng việc copy từng sheet vì khi bóc tác từ PDF qua Excel bị lỗi cột tùm lum hết.
    Gấp lắm ạ, mấy ngày nay em làm bằng tay được 200 sheet là muốn què tay luôn rồi [IMG]images/smilies/a36.gif[/IMG][IMG]images/smilies/a36.gif[/IMG]

  2. #2
    bacnv Guest
    Thêm vấn đề nữa là mình muốn tách TEXT to COLUMNS bằng VBA


    Sub Macro8()'
    ' Macro8 Macro
    '
    ' Keyboard Shortcut: Option+Cmd+x
    '
    Columns("B:B").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=False, Space:=True, Other:=False, OtherChar _
    :=" ", FieldInfo:=Array(Array(1, 1), Array(2, 1))
    Range("A1:L20").Select
    Range("B10").Activate
    Selection.Copy
    End Sub
    Mình có record lại được 1 đoạn như này, nhưng khi chạy có hiện thông báo Do you want to replace the contents of the selected cells? Có cách nào để nó tự nhấn Enter được ko ạ? Mỗi lần chạy em đều phải ấn Enter ức chế quá.

  3. #3
    thangthang69 Guest
    Trích dẫn Gửi bởi thanhjxaun
    Thêm vấn đề nữa là mình muốn tách TEXT to COLUMNS bằng VBA


    Mình có record lại được 1 đoạn như này, nhưng khi chạy có hiện thông báo Do you want to replace the contents of the selected cells? Có cách nào để nó tự nhấn Enter được ko ạ? Mỗi lần chạy em đều phải ấn Enter ức chế quá.
    Phần này em đã làm được rồi ạ, chỉ cần thêm đoạn Application.DisplayAlerts = True sau khi kết thúc code là khỏi ấn enter nữa.

    Đang chờ giải pháp copy sheet như ở 2pic có bác nào giúp em với không ạ [IMG]images/smilies/a42.gif[/IMG]

  4. #4
    huongcao Guest
    Trích dẫn Gửi bởi thanhjxaun
    Xin chào các Thành Excel [IMG]images/smilies/a44.gif[/IMG]

    Sếp em vừa đưa em 1 file pdf để convert dữ liệu qua excel để sếp phân tích. Còn em bây giờ đang rối lắm ạ, sau khi convert qua em có 720 sheet, bây giờ phải gộp lại thành 1 sheet duy nhất để dễ nhìn...

    Mình có tổng cộng 720 sheet và 1 sheet tên TỔNG HỢP.
    Làm thế nào để tạo 1 button có thể hoạt động trên tất cả các sheet, với hành động cụ thể là Xác định sheet đang làm việc (ActiveWindow) copy nội dung từ Range("A1:L20") của sheet đó => qua sheet TỔNG HỢP => Sau đó hide sheet đó đi. End macro [IMG]images/smilies/a42.gif[/IMG]

    Mình muốn tạo Button để kiểm soát từng việc copy từng sheet vì khi bóc tác từ PDF qua Excel bị lỗi cột tùm lum hết.
    Gấp lắm ạ, mấy ngày nay em làm bằng tay được 200 sheet là muốn què tay luôn rồi [IMG]images/smilies/a36.gif[/IMG][IMG]images/smilies/a36.gif[/IMG]
    Muốn gì có file đi bạn, có file thực tế giúp nhanh hơn, test dễ hơn.

  5. #5
    stst575 Guest
    Cảm ơn bạn đã nhắc nhở, mình đã đính kèm file mẫu.

  6. #6
    2snobody Guest
    Trích dẫn Gửi bởi giaiphap
    Dữ liệu các sheet của bạn không thống nhất gì cả, khi muốn thống kê hay tổng hợp bạn không nên ghép các ô lại sẽ dễ bị lỗi nếu dùng code. Bạn xem file và tự kiểm tra kết quả nhé.
    Vâng, do dữ liệu không đồng nhất nên mình muốn chỉ copy từng sheet 1 sau đó ẩn đi.
    Để nếu có sai cột sai hàng thì sửa bằng tay, sau đó lại nhấn button để làm sheet kế tiếp.

    Bạn có thể cho mình giải pháp cho vấn đề này không? Cảm ơn rất nhiều.[IMG]images/smilies/a07.gif[/IMG]

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    4

    Sub GPE()Dim sh As Worksheet
    Application.ScreenUpdating = False
    For Each sh In ThisWorkbook.Worksheets
    If sh.Name <> "TONG HOP" Then
    sh.Range("A1:K" & sh.Range("A65000").End(xlUp).Row).Copy
    Sheet1.Range("A65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    End If
    Next
    Application.ScreenUpdating = True
    Sheet1.[a1].Select
    End Sub

    Bạn có thể giải thích từng dòng 1 cho mình nắm bắt đươc không ạ?
    Đoạn nào trong code có thể xác định dòng cuối cùng của nội dung nằm ở sheet TÔNG HỢP để thực hiện lệnh paste vậy bạn?

  8. #8
    nhuquynh Guest
    Trích dẫn Gửi bởi thanhjxaun
    Vâng, do dữ liệu không đồng nhất nên mình muốn chỉ copy từng sheet 1 sau đó ẩn đi. Để nếu có sai cột sai hàng thì sửa bằng tay, sau đó lại nhấn button để làm sheet kế tiếp.
    Thay vì làm vậy thì mình làm ngược lại, tức là tìm và xóa bằng tay trước sau đó chạy code, chứ dùng code mà không thống nhất vậy tôi chịu thua.

    Trích dẫn Gửi bởi thanhjxaun
    Đoạn nào trong code có thể xác định dòng cuối cùng của nội dung nằm ở sheet TÔNG HỢP để thực hiện lệnh paste vậy bạn?
    Đoạn code này chổ màu đỏ là xác định dòng cuối cùng của cột A, chổ màu xanh và đỏ là xác định khu vực từ A1 đến K cuối cột A.

    Mã:
    Sub GPE()
    Dim sh As Worksheet
    Application.ScreenUpdating = False
    For Each sh In ThisWorkbook.Worksheets
    If sh.Name <> "TONG HOP" Then
    sh.Range("A1:K" & sh.Range("A65000").End(xlUp).Row).Copy
    Sheet1.Range("A65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    End If
    Next
    Application.ScreenUpdating = True
    Sheet1.[a1].Select
    End Sub

  9. #9
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi thanhjxaun
    Cảm ơn bạn đã nhắc nhở, mình đã đính kèm file mẫu.
    Dữ liệu các sheet của bạn không thống nhất gì cả, khi muốn thống kê hay tổng hợp bạn không nên ghép các ô lại sẽ dễ bị lỗi nếu dùng code. Bạn xem file và tự kiểm tra kết quả nhé.

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •