tạo sheet moi bằng nút command button (1 người xem)

Liên hệ QC

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

minhbinhdinh

Thành viên chính thức
Tham gia
15/8/08
Bài viết
65
Được thích
3
lâu quá không lên diễn đàn. chúc mọi người sức khỏe... và mong mọi người giúp đỡ :
minh muốn tạo một nút lệnh để tạo thêm sheet mới trong 1 bảng :
- mình có sheet đầu tên là 20161101, mình muốn tạo ra sheet (20161102) đứng sau sheet(20161101) và có định dạng giống như sheet(20161101)..và cứ như thế tạo ra sheet(20161103) sau sheet(20161102)....
bằng một nút lệnh.
Mong mọi người giúp sớm, vì hằng ngày cứ copy và paste hoài ....mỏi tay quá.
Mời mọi người uống Bầu Đá...hi hi
 
lâu quá không lên diễn đàn. chúc mọi người sức khỏe... và mong mọi người giúp đỡ :
minh muốn tạo một nút lệnh để tạo thêm sheet mới trong 1 bảng :
- mình có sheet đầu tên là 20161101, mình muốn tạo ra sheet (20161102) đứng sau sheet(20161101) và có định dạng giống như sheet(20161101)..và cứ như thế tạo ra sheet(20161103) sau sheet(20161102)....
bằng một nút lệnh.
Mong mọi người giúp sớm, vì hằng ngày cứ copy và paste hoài ....mỏi tay quá.
Mời mọi người uống Bầu Đá...hi hi
Bạn tham khảo Code dưới đây:
PHP:
Sub Add_MultiSheet()
    Dim ws0 As Worksheet, ws As Worksheet, i&
    Application.ScreenUpdating = False
    For i = 0 To 10
        Sheets(1).Copy after:=Sheets(Sheets.Count - 1)
        If i = 0 Then Set ws0 = ActiveSheet
        Set ws = ActiveSheet
        With ws
            .Name = Format(20161101 + i)
        End With
    Next i
    ws0.Activate
    Application.ScreenUpdating = True
    ActiveWorkbook.Save
End Sub
Bạn muốn thêm bao nhiêu Sheet thì thay đổi giá trị i nhé
 
Upvote 0
cảm ơn bạn đã giúp.
ý của mình là một lần nhấn nút thì chỉ tạo ra một sheet thôi. và sheet moi tao ra chi lấy các cell không có đánh "x"
 

File đính kèm

Upvote 0
cảm ơn bạn đã giúp.
ý của mình là một lần nhấn nút thì chỉ tạo ra một sheet thôi. và sheet moi tao ra chi lấy các cell không có đánh "x"
Tại sao lại phải copy thêm sheet trong khi bảng tính có bao nhiêu cột đó. Ta chỉ cần thêm ngày ở dòng 1 (từ cột D sang phải): điền ngày từ ngày 1 của tháng tới ngày cuối của tháng. Với mỗi ngày tương ứng với nội dung nào được thực hiện thì ta oánh dấu "x" vô.
Nếu vấn không thích đơn giản thế thì tham khảo đoạn sau:
Mã:
Sub CDx()
Application.ScreenUpdating = False
Dim t As Integer, r As Long
t = ThisWorkbook.Sheets.Count
Sheets(Sheets.Count).Copy After:=Sheets(Left(Sheet2.Name, 6) & Format(t - 1, "0#"))
Sheets(t + 1).Name = Left(Sheet2.Name, 6) & Format(t, "0#")
With Sheets(t + 1)
    For r = .Range("B65000").End(xlUp).Row To 2 Step -1
        If .Range("D" & r).Value = "x" Then .Rows(r).Delete Shift:=xlUp
    Next
End With
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Tại sao lại phải copy thêm sheet trong khi bảng tính có bao nhiêu cột đó. Ta chỉ cần thêm ngày ở dòng 1 (từ cột D sang phải): điền ngày từ ngày 1 của tháng tới ngày cuối của tháng. Với mỗi ngày tương ứng với nội dung nào được thực hiện thì ta oánh dấu "x" vô.
Nếu vấn không thích đơn giản thế thì tham khảo đoạn sau:
Mã:
Sub CDx()
Application.ScreenUpdating = False
Dim t As Integer, r As Long
t = ThisWorkbook.Sheets.Count
Sheets(Sheets.Count).Copy After:=Sheets(Left(Sheet2.Name, 6) & Format(t - 1, "0#"))
Sheets(t + 1).Name = Left(Sheet2.Name, 6) & Format(t, "0#")
With Sheets(t + 1)
    For r = .Range("B65000").End(xlUp).Row To 2 Step -1
        If .Range("D" & r).Value = "x" Then .Rows(r).Delete Shift:=xlUp
    Next
End With
Application.ScreenUpdating = True
End Sub
Vừa rồi tôi có viết được Sub giải quyết bài toán( #3), nhưng Code của bạn hay và tối ưu hơn rất nhiều. Cảm ơn bạn nhé.
 
Upvote 0
Web KT

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

Back
Top Bottom