Copy dữ liệu không thay đổi định dạng (1 người xem)

  • Thread starter Thread starter avada29
  • Ngày gửi Ngày gửi
Liên hệ QC

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

avada29

Thành viên mới
Tham gia
26/7/13
Bài viết
23
Được thích
0
Chào các bác, em đang làm một file excel lọc dữ liệu các trạm trùng vào trong một ô, sau đó copy qua sheet khác, mà khi copy qua thì cột ngày tháng bị thay đổi hết định dạng, bác nào cao thủ giúp em cách copy mà vẫn không mất đi định dạng của nó không vậy, cám ơn các bác nhiều Em gởi file nên cho các bác tiện theo dõi nhé, sheet DATA là dữ liệu gốc, sheet GPE là dữ liệu em copy qua, phần thời điểm bắt đầu và kết thúc sự cố thì mất hết định dạng luôn http://www.mediafire.com/?oo785yew8r3vqas Em gởi file attach mà nó báo vượt quá dung lượng nên không attach được, các bác vào link đó download giùm em nhé
 
Chào các bác, em đang làm một file excel lọc dữ liệu các trạm trùng vào trong một ô, sau đó copy qua sheet khác, mà khi copy qua thì cột ngày tháng bị thay đổi hết định dạng, bác nào cao thủ giúp em cách copy mà vẫn không mất đi định dạng của nó không vậy, cám ơn các bác nhiều Em gởi file nên cho các bác tiện theo dõi nhé, sheet DATA là dữ liệu gốc, sheet GPE là dữ liệu em copy qua, phần thời điểm bắt đầu và kết thúc sự cố thì mất hết định dạng luôn http://www.mediafire.com/?oo785yew8r3vqas Em gởi file attach mà nó báo vượt quá dung lượng nên không attach được, các bác vào link đó download giùm em nhé
Nhìn code quen quen. Xem trong Code, tìm dòng này:
With Sheets("DATA")
sArr = .Range(.[A11], .[A65536].End(xlUp)).Resize(, 19).Value2
End With
Thay chữ Value2 thành Value thử xem sao.
Thay các số 1000 trong 2 dòng này
.[A11].Resize(1000, 19).ClearContents
.[A11].Resize(1000, 19).Borders.LineStyle = xlNone
Thành số 10000 luôn, vì dữ liệu của bạn hơn 1000 dòng rồi.
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ đúng rồi đó ạ,cái này hôm trước em có đăng lên hỏi rồi, mà thầy cho em hỏi value khác với value2 thế nào không vậy,hồi đó em đọc ma không hiểu lắm
 
Upvote 0
Cho em hỏi tí,em sửa như thầy nói thì ra đúng định dạng ngày tháng,nhưng nó lại để là AM PM, giờ em muốn để định dạng là 24h thì làm sao ạ
 
Upvote 0
Cho em hỏi tí,em sửa như thầy nói thì ra đúng định dạng ngày tháng,nhưng nó lại để là AM PM, giờ em muốn để định dạng là 24h thì làm sao ạ
Híc!
Định dạng Time có AM-PM hay không là do trong Control Panel của bạn, bạn thử nhìn trong cột F,I,J sheet DATA của bạn xem có AM-PM không? (Xem trên thanh công thức bên trên nhé, không phải trên màn hình)
Nếu bạn quyết có kết quả như ý bạn thì thử lại Code này, tôi cũng "chìu" hết mức nhưng không ra cách gọn hơn.
[GPECODE=vb]Public Sub GPE_()
Application.ScreenUpdating = False
Dim Dic As Object, sArr(), dArr(), I As Long, J As Long, K As Long, Tem As String, Num As Long
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("DATA")
sArr = .Range(.[A11], .[A1048576].End(xlUp)).Resize(, 19).Value2
End With
ReDim dArr(1 To UBound(sArr, 1), 1 To 19)
For I = 1 To UBound(sArr, 1)
Tem = sArr(I, 2)
If Not Dic.Exists(Tem) Then
K = K + 1: dArr(K, 1) = K
Dic.Add Tem, K
For J = 2 To 19
If sArr(I, J) <> Empty Then dArr(K, J) = sArr(I, J)
Next J
dArr(K, 6) = "'" & Format(sArr(I, 6), "dd/mm/yyyy hh:mm:ss")
dArr(K, 9) = "'" & Format(sArr(I, 9), "dd/mm/yyyy hh:mm:ss")
dArr(K, 10) = "'" & Format(sArr(I, 10), "dd/mm/yyyy hh:mm:ss")
Else
Num = Dic.Item(Tem)
For J = 3 To 5
If sArr(I, J) <> Empty Then dArr(Num, J) = dArr(Num, J) & Chr(10) & sArr(I, J)
Next J
For J = 11 To 19
If sArr(I, J) <> Empty Then dArr(Num, J) = dArr(Num, J) & Chr(10) & sArr(I, J)
Next J
If sArr(I, 7) <> Empty Then dArr(Num, 7) = dArr(Num, 7) & Chr(10) & sArr(I, 7)
If sArr(I, 8) <> Empty Then dArr(Num, 8) = dArr(Num, 8) & Chr(10) & sArr(I, 8)
dArr(Num, 6) = dArr(Num, 6) & Chr(10) & Format(sArr(I, 6), "dd/mm/yyyy hh:mm:ss")
dArr(Num, 9) = dArr(Num, 9) & Chr(10) & Format(sArr(I, 9), "dd/mm/yyyy hh:mm:ss")
dArr(Num, 10) = dArr(Num, 10) & Chr(10) & Format(sArr(I, 10), "dd/mm/yyyy hh:mm:ss")
End If
Next I
With Sheets("GPE")
.[A11].Resize(10000, 19).ClearContents
.[A11].Resize(10000, 19).Borders.LineStyle = xlNone
.[A11].Resize(K, 19) = dArr
.[A11].Resize(K, 19).Borders.LineStyle = xlContinuous
.[B11].Resize(K, 18).Sort Key1:=.[B11]
.Range("A11:A" & K + 10).EntireRow.AutoFit
.[G9].Select
End With
Set Dic = Nothing
Application.ScreenUpdating = True
End Sub[/GPECODE]
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn thầy nhiều ạ, mà nhân tiện thầy cho em hỏi thầy có phải là thầy Phan Tự Hướng không vậy, em định mua sách thầy mà giờ ở Đà Nẵng nên không mua được, ở Đà Nẵng không thấy chỗ nào bán cả
 
Upvote 0
Cám ơn thầy nhiều ạ, mà nhân tiện thầy cho em hỏi thầy có phải là thầy Phan Tự Hướng không vậy, em định mua sách thầy mà giờ ở Đà Nẵng nên không mua được, ở Đà Nẵng không thấy chỗ nào bán cả
Kiểu này hôm nay thầy Bate chắc buồn lắm đây, rồi thầy lại mượn cái cớ này làm khoảng 1 lít rượu để giải buồn thì bạn này phải chịu trách nhiệm đó.--=0
 
Upvote 0

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

Back
Top Bottom