Xin code VBA coppy dữ liệu sang sheet mới theo yêu cầu (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

dinhquang042000

Thành viên chính thức
Tham gia
16/12/15
Bài viết
76
Được thích
4
Kính gửi các anh/chị Forum ,

Em đang lập 1 file báo cáo, muốn chuyển lấy tất cả các dữ liệu trong sheet "DU LIEU sang sheet "BAO CAO" với điều kiện điều kiện các giá trị cột J Berth time và cột J và Departure time chuyển từ ký tự sang số. VD: 14/11/2017 21:25:00 ở sheet DU LIEU chuyển 20171114 ở sheet BAO CAO.
Mong được các PRO chỉ giúp.
 

File đính kèm

Kính gửi các anh/chị Forum ,

Em đang lập 1 file báo cáo, muốn chuyển lấy tất cả các dữ liệu trong sheet "DU LIEU sang sheet "BAO CAO" với điều kiện điều kiện các giá trị cột J Berth time và cột J và Departure time chuyển từ ký tự sang số. VD: 14/11/2017 21:25:00 ở sheet DU LIEU chuyển 20171114 ở sheet BAO CAO.
Mong được các PRO chỉ giúp.
Bạn thử:
PHP:
Sub Copy_abc()
    Dim LR As Long, Cell As Range
    LR = Range("A" & Rows.Count).End(xlUp).Row
    Sheets("DU LIEU").Range("A1:J" & LR).Copy
    Sheets("BAO CAO").Range("A1").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    For Each Cell In Sheets("BAO CAO").Range("I1:J" & LR)
        If IsDate(Cell.Value) Then
            Cell.Value = Format(Cell.Value, "yyyymmdd")
        End If
    Next
End Sub
 
Upvote 0
Bạn thử:
PHP:
Sub Copy_abc()
    Dim LR As Long, Cell As Range
    LR = Range("A" & Rows.Count).End(xlUp).Row
    Sheets("DU LIEU").Range("A1:J" & LR).Copy
    Sheets("BAO CAO").Range("A1").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    For Each Cell In Sheets("BAO CAO").Range("I1:J" & LR)
        If IsDate(Cell.Value) Then
            Cell.Value = Format(Cell.Value, "yyyymmdd")
        End If
    Next
End Sub
Dạ được rùi ạ, em cảm ơn anh nhiều nhiều ạ
 
Upvote 0
Dạ được rùi ạ, em cảm ơn anh nhiều nhiều ạ

Gửi anh phulien1902,

Em dùng code của anh xuất hiện một lỗi như sau:
với các giá trị ngày nhỏ hơn 10 như: 7/11/2017 1:18:27 PM chuyển đổi không ra được đúng định dạng. mà ra số 42927.5544791667
Anh xem có cách nào khắc phục cái này không ạ
Cảm ơn anh nhiều ạ
 
Upvote 0
Gửi anh phulien1902,

Em dùng code của anh xuất hiện một lỗi như sau:
với các giá trị ngày nhỏ hơn 10 như: 7/11/2017 1:18:27 PM chuyển đổi không ra được đúng định dạng. mà ra số 42927.5544791667
Anh xem có cách nào khắc phục cái này không ạ
Cảm ơn anh nhiều ạ
Vậy bạn thử:
PHP:
Sub Copy_abc2()
    Dim LR As Long, Cell As Range
    LR = Range("A" & Rows.Count).End(xlUp).Row
    Sheets("DU LIEU").Range("A1:J" & LR).Copy
    Sheets("BAO CAO").Range("A1").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    For Each Cell In Sheets("BAO CAO").Range("I1:J" & LR)
        If IsDate(Cell.Value) Then
            Cell.NumberFormat = "yyyymmdd"
        End If
    Next
End Sub
 
Upvote 0
PHP:
Sub GPE_CopyToSheet()
    Dim LR As Long, Cell As Range
    LR = Range("A" & Rows.Count).End(xlUp).Row
    Sheets("DU LIEU").Range("A1:J" & LR).Copy
    Sheets("BAO CAO").Range("A1").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    For Each Cell In Sheets("BAO CAO").Range("I1:J" & LR)
        If IsDate(Cell.Value) Then
            Cell.Value = Year(Cell) * 10^4 + Month(Cell) * 100 + Day(Cell)
        End If
    Next Cell
    Range("I2:J" & LR).NumberFormat = "###000"
End Sub
 
Upvote 0
Vậy bạn thử:
PHP:
Sub Copy_abc2()
    Dim LR As Long, Cell As Range
    LR = Range("A" & Rows.Count).End(xlUp).Row
    Sheets("DU LIEU").Range("A1:J" & LR).Copy
    Sheets("BAO CAO").Range("A1").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    For Each Cell In Sheets("BAO CAO").Range("I1:J" & LR)
        If IsDate(Cell.Value) Then
            Cell.NumberFormat = "yyyymmdd"
        End If
    Next
End Sub

Code này bị vẫn bị lỗi chuyển sai các giá trị ngày dưới 10 ra kết quả 7/11/2017 1:18:27 PM -->42927.5544791667, các ngày trên 10: 15/11/2017 1:18:27 PM ra luôn chính nó, anh xem chỉ giúp thêm giúp em ạ
 
Upvote 0
PHP:
Sub GPE_CopyToSheet()
    Dim LR As Long, Cell As Range
    LR = Range("A" & Rows.Count).End(xlUp).Row
    Sheets("DU LIEU").Range("A1:J" & LR).Copy
    Sheets("BAO CAO").Range("A1").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    For Each Cell In Sheets("BAO CAO").Range("I1:J" & LR)
        If IsDate(Cell.Value) Then
            Cell.Value = Year(Cell) * 10^4 + Month(Cell) * 100 + Day(Cell)
        End If
    Next Cell
    Range("I2:J" & LR).NumberFormat = "###000"
End Sub

Khi em chạy code này báo lỗi
COMPILE ERROR
Syntax error
Như vậy là lỗi gì anh nhỉ
 
Upvote 0
Em sử dụng file của anh, nhưng khi giá trị ngày <=10 vẫn bị lỗi
7/11/2017 7:31:00 PM --> 81330411 (dữ liệu trên file đính kèm)
anh có thể xem lại giúp e được không ạ.
Dữ liệu trong cột I, J của bạn lung tung Date-Time và Text, đừng canh lề nhìn vào thấy ngay.
Đừng tự tạo khó như vậy.
 

File đính kèm

Upvote 0
Dữ liệu trong cột I, J của bạn lung tung Date-Time và Text, đừng canh lề nhìn vào thấy ngay.
Đừng tự tạo khó như vậy.

Dạ ban đầu nó 1 file dữ liệu trên hệ thống công ty, em dùng code sắp xếp lại và lấy các cột cần thiết, không biết sao dữ liệu cột này nó nhảy loạn xạ lên vậy
Các anh xem hộ em chỉnh sửa code thế nào cho nó về cùng 1 định dạng được ko ạ
File này là lấy dữ liệu từ sheet XNB TOPO (dữ liệu gốc) --> XNB (dữ liệu xử lý)
Các cột bên ngày tháng sheet XNB chuyển sang yyyymm đc thì tốt ạ.
mong các Pro chỉ giáo thêm giúp em.
 

File đính kèm

Upvote 0
Dạ ban đầu nó 1 file dữ liệu trên hệ thống công ty, em dùng code sắp xếp lại và lấy các cột cần thiết, không biết sao dữ liệu cột này nó nhảy loạn xạ lên vậy
Các anh xem hộ em chỉnh sửa code thế nào cho nó về cùng 1 định dạng được ko ạ
Để cùng định dạng côt ngày tháng, bạn làm như sau:
1.Chọn cột cần xử lý
2. Vào Data --> Text To Columns ---> Delimited ---> Finish.
 
Upvote 0
Với hàm này, khi sử dụng các giá trị 07/11/2017 13:18:27 --> nó chuyển sang 20170711 ngược ngày vs tháng, các giá trị khác thì đúng ạ.
mong anh chỉ thêm giúp e
Trong file tôi gởi ở bài #13, dòng nào kết quả sai, bạn gởi lại file có kết quả sai, hoặc gởi hình dòng sai xem sao.
Có thể trong Control Panel máy bạn định dạng mm/dd/yyyy
 
Upvote 0
Web KT

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

Back
Top Bottom