Nhờ giúp đỡ đoạn code (1 người xem)

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

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

thang24

Thành viên chính thức
Tham gia
21/8/07
Bài viết
97
Được thích
80
Nghề nghiệp
tc
Mình đang làm file tổng hợp gom các sheet vào sheet data tuy nhiên đoạn mã lại đi copy toàn bộ cả công thức.
Nhờ anh chị giúp đỡ lại đoạn code sao cho chỉ copy toàn bộ sheet con và paste dưới dạng value.

Code:
Sub DATA()
Dim WSh As Worksheet
Dim dong As Long
Sheets("DATA").Cells.Clear
Sheets("DATA").Range("A10:s10") = Sheets("KV").Range("A10:s10").Value
For Each WSh In ThisWorkbook.Worksheets
If WSh.Name <> "DATA" And WSh.Name <> "List" And WSh.Name <> "View" And WSh.Name <> "Tonghop" Then
dong = Sheets("DATA").Range("A65536").End(xlUp).Row + 1
Sheets("Data").Cells(dong, "S").Resize(WSh.[A10].CurrentRegion.Offset(2).Rows.Count).Value = WSh.Name
WSh.[A10].CurrentRegion.Offset(2).Copy Destination:=Sheets("DATA").Range("A" & dong)

End If
Next WSh

End Sub

cảm ơn.
 

File đính kèm

Lần chỉnh sửa cuối:
gấpMình đang cần gấp file quá mà chưa tìm được cách xử lý, nhờ anh chị chỉ giùm
 
Upvote 0
Bạn có toàn quyền đưa bài lên sớm hơn; Bạn không có quyền dục người khác. . . .

Thử với macro này xem sao:

PHP:
Sub DATA()
Dim WSh As Worksheet
Dim Dong As Long, Rws As Long
Sheets("DATA").Select
Rows("10:10").Resize(10 ^ 4).Clear
Range("A10:s10").Value = Sheets("KV").Range("A10:s10").Value
For Each WSh In ThisWorkbook.Worksheets
    If WSh.Name <> "DATA" And WSh.Name <> "List" And WSh.Name <> "View" And WSh.Name <> "Tonghop" Then
    
        Dong = Sheets("DATA").Range("A65536").End(xlUp).Row + 1
        Rws = WSh.[A65500].End(xlUp).Row
        With Cells(65500, "A").End(xlUp).Offset(1)
            .Resize(Rws, 25).Value = WSh.[A12].Resize(Rws, 25).Value
'        Sheets("Data").Cells(Dong, "S").Resize(WSh.[A10].CurrentRegion.Offset(2).Rows.Count).Value = WSh.Name'
'        WSh.[A10].CurrentRegion.Offset(2).Copy Destination:=Sheets("DATA").Range("A" & Dong)'
        End With
    End If
Next WSh
End Sub
 
Upvote 0
rất cảm ơn bạn, mình sẽ rút kinh nghiệm lần sau.
 
Upvote 0
Mình muốn trong định dạng cột E sheet Data dữ liệu chuyển sang sẽ là định dạng ngày tháng, nhưng loay hoay mãi không tài nào nghĩ ra cách, nhờ các bạn giúp đỡ.
Cảm ơn.
 

File đính kèm

Upvote 0
Mình muốn trong định dạng cột E sheet Data dữ liệu chuyển sang sẽ là định dạng ngày tháng, nhưng loay hoay mãi không tài nào nghĩ ra cách, nhờ các bạn giúp đỡ.
Cảm ơn.
Bạn xài thử code này xem sao
PHP:
Sub dinhdang()
Dim dl, arr(), i
dl = Range([e11], [e65536].End(3)).Value
ReDim arr(1 To UBound(dl), 1 To 1)
For i = 1 To UBound(dl)
    arr(i, 1) = Left(dl(i, 1), 2) & "-" & Mid(dl(i, 1), 4, 2) & "-" & Right(dl(i, 1), 4)
Next
[e11].Resize(UBound(dl), 1) = arr
End Sub
 
Upvote 0
Bạn xài thử code này xem sao
PHP:
Sub dinhdang()
Dim dl, arr(), i
dl = Range([e11], [e65536].End(3)).Value
ReDim arr(1 To UBound(dl), 1 To 1)
For i = 1 To UBound(dl)
    arr(i, 1) = Left(dl(i, 1), 2) & "-" & Mid(dl(i, 1), 4, 2) & "-" & Right(dl(i, 1), 4)
Next
[e11].Resize(UBound(dl), 1) = arr
End Sub
Em thử nghiệm code trên sao nó báo lỗi "Can't find project or library"
Em cảm ơn!
 
Upvote 0
Em thử nghiệm code trên sao nó báo lỗi "Can't find project or library"
Em cảm ơn!
Chắc là bạn thử trên cái file đó thì bị lỗi vì cái file đó cò gì đó mình không hiểu. Bạn tạo 1 file mới và copy cột E ra và test thử xem
 
Lần chỉnh sửa cuối:
Upvote 0
Rất cảm ơn các anh chị, em đã làm tốt được rồi.
 
Upvote 0
Nếu giả sử ta đổi tên một vùng liệu có giải pháp nào tốt hơn không?
Xin nhờ giúp đỡ.
 

File đính kèm

Upvote 0
Nếu giả sử ta đổi tên một vùng liệu có giải pháp nào tốt hơn không?
Xin nhờ giúp đỡ.
1. Bạn nói đổi tên một vùng là sao không hiểu? Tên một vùng là Name?
2. Như bài #10 bên trên, File của bạn có "cái gì đó" rất khó chịu, phải copy sang file khác mới "chạy" được.
3. Tôi tự hiểu là dữ liệu 3 cột E,F,G bạn muốn chuyển sang dạng Date nên làm thí thí, không trúng thì ... trật!
PHP:
Public Sub DATA()
Dim WSh As Worksheet, Rng(), I As Long, J As Long, Tem As Variant
With Sheets("DATA")
    .[A10].Resize(1000, 25).ClearContents
    .Range("A10:y10").Value = Sheets("KV").Range("A10:y10").Value
    Rng = Sheets("du dau").Range(Sheets("du dau").[A12], Sheets("du dau").[A65000].End(xlUp)).Resize(, 25).Value
    .[A65000].End(xlUp).Offset(1).Resize(UBound(Rng, 1), 25).Value = Rng
For Each WSh In Worksheets
    If WSh.Name <> "DATA" And WSh.Name <> "KV" And WSh.Name <> "du dau" Then
        Rng = WSh.Range(WSh.[A12], WSh.[A65000].End(xlUp)).Resize(, 25).Value
        .[A65000].End(xlUp).Offset(1).Resize(UBound(Rng, 1), 25).Value = Rng
    End If
Next
    Rng = .Range(.[A11], .[A65000].End(xlUp)).Resize(, 25).Value
        For I = 1 To UBound(Rng, 1)
            For J = 5 To 7
                If Len(Rng(I, J)) > 1 Then
                    Rng(I, J) = DateSerial(Right(Rng(I, J), 4), Mid(Rng(I, J), 4, 2), Left(Rng(I, J), 2))
                End If
            Next J
        Next I
    .[A11].Resize(I - 1, 25).Value = Rng
End With
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Giả sử ở đây mình thêm 2-10 sheet thể hiện các tháng 6, 7....(cấu trúc giống hệt tháng 4-5) thì khi chạy lại báo lỗi. Lỗi này mình không hiểu do đâu nữa. Vì theo code trên thì chỉ loại WSh.Name <> "DATA" And WSh.Name <> "KV" And WSh.Name <> "du dau" là không tính.
 
Upvote 0
Giả sử ở đây mình thêm 2-10 sheet thể hiện các tháng 6, 7....(cấu trúc giống hệt tháng 4-5) thì khi chạy lại báo lỗi. Lỗi này mình không hiểu do đâu nữa. Vì theo code trên thì chỉ loại WSh.Name <> "DATA" And WSh.Name <> "KV" And WSh.Name <> "du dau" là không tính.
Ít nhất bạn cũng phải đưa cái file bị lỗi đó lên mọi người mới biết là do đâu chứ. Người khác đâu thể tạo dữ liệu "Giả sử" giùm bạn được. Đây là điều bạn cần biết để có bài trả lời nhanh hơn.
 
Upvote 0
Chính là file GFE4 của bate ở trên. Ba te cứ thử move copy thêm 2 (hoặc nhiều) sheet và đổi tên thành tháng 6, tháng 7 xem có gặp lỗi không tổng hợp được không.
 
Upvote 0
Chính là file GFE4 của bate ở trên. Ba te cứ thử move copy thêm 2 (hoặc nhiều) sheet và đổi tên thành tháng 6, tháng 7 xem có gặp lỗi không tổng hợp được không.
1. Xóa bớt mấy Name không cần thiết đi.
2. Format cột E,F,G sheet Data thành General thử xem.
Do dữ liệu các sheet khác, cột E,F,G lộn xộn vừa text vừa số 0 kỳ cục quá.
 
Upvote 0
Sao anh không thử giúp em đoạn code xóa toàn bộ dữ liệu data trước khi chạy như vậy mình đỡ phải cứ mỗi lần chạy lại là phải vào format lại các cột E F G
 
Upvote 0
Web KT

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

Back
Top Bottom