Giúp mình viết macro này với! (1 người xem)

Liên hệ QC

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

Status
Không mở trả lời sau này.

laydaihiep

Thành viên mới
Tham gia
16/1/12
Bài viết
39
Được thích
0
Mình có 1 bảng danh mục, chủ đề được sắp xếp theo cột, và mỗi hàng là nội dung chính trong 1 sheet {sheet với nội dung như nhau, chỉ khác nhau một số ô cần thay thế nằm ở mỗi hàng}
Mình nhờ các bạn viết cho mình 1 macro với nội dung như sau:
Chọn vùng A1:Ax [x bất kỳ]
Ứng với mỗi hàng Ax tạo 1 sheet mới tên x
[A1 đặt tên sheet là 1, A2 đặt tên sheet là 2, Ax đặt tên sheet là x.]
Nội dung sheet mình có thể làm được, nên các bạn cứ viết [nội dung sheet trừa lại cho mình là được]
Trong sheet mình viết lấy địa chỉ ô tương đối VD: trong sheet 1 ứng với A1 mình sẽ lấy các giá trị B 1, C 1...trong hàng 1 đưa vào sheet [1] bằng cách với B1 lấy sang phải A 1 một cột, C 1 lấy sang A 1 hai cột...
Mong các bạn giúp mình, cảm ơn các bạn trước.
 
Mình có 1 bảng danh mục, chủ đề được sắp xếp theo cột, và mỗi hàng là nội dung chính trong 1 sheet {sheet với nội dung như nhau, chỉ khác nhau một số ô cần thay thế nằm ở mỗi hàng}
Mình nhờ các bạn viết cho mình 1 macro với nội dung như sau:
Chọn vùng A1:Ax [x bất kỳ]
Ứng với mỗi hàng Ax tạo 1 sheet mới tên x
[A1 đặt tên sheet là 1, A2 đặt tên sheet là 2, Ax đặt tên sheet là x.]
Nội dung sheet mình có thể làm được, nên các bạn cứ viết [nội dung sheet trừa lại cho mình là được]
Trong sheet mình viết lấy địa chỉ ô tương đối VD: trong sheet 1 ứng với A1 mình sẽ lấy các giá trị B 1, C 1...trong hàng 1 đưa vào sheet [1] bằng cách với B1 lấy sang phải A 1 một cột, C 1 lấy sang A 1 hai cột...
Mong các bạn giúp mình, cảm ơn các bạn trước.

1- tiêu đề ko rỏ ràng==> bài của bạn có thể bị khóa và xóa
2- bạn nên đưa file lên, ko có file thấy lấy gì mà làm?
 
Upvote 0
Xin lỗi bạn, lần đầu mình đăng bài.
Mình nhờ các bạn viết cho mình 1 macro với nội dung như sau:
Chọn vùng A10:A14 [có thể dài hơn nữa VD A10:A30] đây chỉ là ví dụ cụ thể
Ứng với mỗi hàng A10, A11, A12... tạo 1 sheet mới có tên bằng giá trị ô đó.
Sheet mới với nội dung giống nhau, chỉ thay thế giá trị một số ô ở sheet danh mục [mình đã tô màu]
Có File đính kèn, thiếu 3 sheet mình chua làm, bạn đọc là hiểu liền.
Cảm ơn bạn đã quan tâm, mong bạn giúp mình
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Xin lỗi bạn, lần đầu mình đăng bài.
Mình nhờ các bạn viết cho mình 1 macro với nội dung như sau:
Chọn vùng A10:A14 [có thể dài hơn nữa VD A10:A30] đây chỉ là ví dụ cụ thể
Ứng với mỗi hàng A10, A11, A12... tạo 1 sheet mới có tên bằng giá trị ô đó.
Sheet mới với nội dung giống nhau, chỉ thay thế giá trị một số ô ở sheet danh mục [mình đã tô màu]
Có File đính kèn, thiếu 3 sheet mình chua làm, bạn đọc là hiểu liền.
Cảm ơn bạn đã quan tâm, mong bạn giúp mình

Bạn tham khảo Code này nhé
PHP:
Sub laydaihiep()
    Dim wsNew As Worksheet, wsMain As Worksheet
    Dim list_of_existing As String, Target As Range

    Set wsMain = Sheets("Danh muc")
    For Each Target In wsMain.Range("A10:A50")
        If Not IsEmpty(Target) Then
            On Error Resume Next
            Set wsNew = ThisWorkbook.Sheets(Target.Value)
            On Error GoTo 0
            If Not wsNew Is Nothing Then
                list_of_existing = list_of_existing & vbCrLf & Target.Value
            Else
                ThisWorkbook.Sheets("(1÷15)D1m").Copy _
                        After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
                With Sheets(ThisWorkbook.Sheets.Count)
                    .Name = Target.Value
                End With
            End If
            Set wsNew = Nothing
        End If
    Next Target
    Set wsMain = Nothing
    If Len(list_of_existing) > 0 Then
        MsgBox "Cap nhat cac sheet moi da thanh cong !"
    End If
End Sub
 

File đính kèm

Upvote 0
Cảm ơn bạn đã giúp.
Nhưng mình vẫn còn 1 vấn đề là trong các sheet mới tạo ra. Những ô mình tô màu trong sheet mới có liên kết với sheet danh mục không liên kết đúng địa chỉ [ VD sheet "D1.25m+D1.5m" sẽ liên kết với các ô ở hàng 12," D1.25m+D1.5m:E12=Danhmuc:D12", D1.25m+D1.5m:D19=Danhmuc:M12 ]
Mình mới học VBA những dòng lệnh của bạn mình chưa biết, bạn có thể giải thích tác dụng từng dòng lệnh cho mình với.
Cảm ơn bạn nhiều, mong bạn giúp mình!
 
Upvote 0

thêm một chút là được mà
Mã:
Sub laydaihiep()
    Dim wsNew As Worksheet, wsMain As Worksheet
    Dim list_of_existing As String, Target As Range

    Set wsMain = Sheets("Danh muc")
    For Each Target In wsMain.Range([A10], [A60000].End(3))
        If Not IsEmpty(Target) Then
            On Error Resume Next
            Set wsNew = ThisWorkbook.Sheets(Target.Value)
            On Error GoTo 0
            If Not wsNew Is Nothing Then
                list_of_existing = list_of_existing & vbCrLf & Target.Value
            Else
                ThisWorkbook.Sheets("(1÷15)D1m").Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
                With Sheets(ThisWorkbook.Sheets.Count)
                    .Name = Target.Value
                     .[e12] = wsMain.Range(Target.Address).Offset(, 3).Value[COLOR=#0000ff][/COLOR]
                End With
            End If
            Set wsNew = Nothing
        End If
    Next Target
    Set wsMain = Nothing
    If Len(list_of_existing) > 0 Then
        MsgBox "Cap nhat cac sheet moi da thanh cong !"
    End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Mình có 1 bảng danh mục, chủ đề được sắp xếp theo cột, và mỗi hàng là nội dung chính trong 1 sheet {sheet với nội dung như nhau, chỉ khác nhau một số ô cần thay thế nằm ở mỗi hàng}
Mình nhờ các bạn viết cho mình 1 macro với nội dung như sau:
Chọn vùng A1:Ax [x bất kỳ]
Ứng với mỗi hàng Ax tạo 1 sheet mới tên x
[A1 đặt tên sheet là 1, A2 đặt tên sheet là 2, Ax đặt tên sheet là x.]
Nội dung sheet mình có thể làm được, nên các bạn cứ viết [nội dung sheet trừa lại cho mình là được]
Trong sheet mình viết lấy địa chỉ ô tương đối VD: trong sheet 1 ứng với A1 mình sẽ lấy các giá trị B 1, C 1...trong hàng 1 đưa vào sheet [1] bằng cách với B1 lấy sang phải A 1 một cột, C 1 lấy sang A 1 hai cột...
Mong các bạn giúp mình, cảm ơn các bạn trước.

Nội dung bạn yêu cầu chưa cụ thể, ví dụ:

- Cột B là họ và tên của khách hàng với dữ liệu theo dõi của 10 người, bạn muốn tách dữ liệu của 10 khách hàng ra 10 sheet, đồng thời đặt tên sheet là tên của khách hàng đó.
 
Upvote 0
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom