Giúp em đổi tên sheet theo ngày tháng trong dữ liệu

Liên hệ QC

trexanhvn

Thành viên mới
Tham gia
23/2/12
Bài viết
10
Được thích
1
Kính gửi các cụ!

Em có file excel gồm nhiều sheet. Số sheet chính bằng số ngày trong tháng. (trong file đính kèm em lấy 2 sheet để vd) và muốn đổi tên theo cách đánh như sau Sheet 1 = "01082022", sheet 2 ="02082022", .....
Ngoài ra, trong 1 sheet có khoảng 5000 dòng thì em muốn tự động bắt đầu từ các ô G1, H1, I1 sẽ tự điện lệnh cho đến dòng cuối cùng. Trong đó ngày tháng thì theo "Sheets Name" còn H1 và I1 là tách dữ liệu từ A1 ( chi tiết file đính kèm) và việc này được lặp lại cho các sheets khác.
Rất mong các bác giúp đỡ. Em cám ơn ạ
tach BS.JPG
 

File đính kèm

  • test.xlsx
    35.9 KB · Đọc: 7
(*) Trước khi đổi, các trang này có tên là gì?
Hay từng trang tính phải căn cứ vô số liệu của cột [F] để đổi tên trang?

(*) Lưu ý 1 chuyện nhỏ này: Lần sau phải lấy thêm ví dụ có ngày 13 của tháng, như
01082022, 02082022,. . . . ,13082022
 
Upvote 0
(*) Trước khi đổi, các trang này có tên là gì?
Hay từng trang tính phải căn cứ vô số liệu của cột [F] để đổi tên trang?

(*) Lưu ý 1 chuyện nhỏ này: Lần sau phải lấy thêm ví dụ có ngày 13 của tháng, như
01082022, 02082022,. . . . ,13082022
Trươcs khi đổi nó tên sheets 1, sheet 2
các trang tinh có dữ liệu ở cột A. từ dưx liệu này cắt chuổi để ra dưx liệu cột H, cột I
 
Upvote 0
Thành viên 10 năm rồi mà cũng xao lãng luật tiêu đề sao?
 
Upvote 0
Tác giả bài đăng gọi 'Cụ' & xưng "Em" mà bạn!
Nếu nghĩa đen 'Cụ' dành cho những người có tuồi 70±10 thì DĐ có cỡ chục cơ đấy!

Chúc các bạn có tuần làm việc hiệu quả
 
Upvote 0
Xài đỡ trong khi chờ phương án khác hay hơn:
Mã:
Option Explicit
Sub test()
Dim lr&, i&, n&, s, rng, ws As Worksheet
Dim thang, nam, songay&
thang = InputBox("Nhap thang: (1-12)")
If Not IsNumeric(thang) Or thang > 12 Or thang <= 0 Or IsEmpty(thang) Then
    MsgBox "Thang khong hop le!"
    Exit Sub
End If
nam = InputBox("Nhap nam: (vd: 2022)")
If Not IsNumeric(nam) Or nam <= 0 Or IsEmpty(nam) Then
    MsgBox "Nam khong hop le!"
    Exit Sub
End If
songay = Day(WorksheetFunction.EoMonth(DateSerial(nam, thang, 1), 0))
For Each ws In Sheets
    n = n + 1
    If n <= songay Then
        ws.Name = Format(DateSerial(nam, thang, n), "ddmmyyyy")
        lr = ws.Cells(Rows.Count, "A").End(xlUp).Row
        ws.Range("G2:I" & lr).ClearContents
        rng = ws.Range("A2:I" & lr).Value
        For i = 1 To UBound(rng)
            rng(i, 7) = DateSerial(nam, thang, n)
            s = Split(Replace(rng(i, 1), ":", "-"), "-")
            On Error Resume Next
            rng(i, 8) = TimeSerial(s(0), s(1), s(2))
            On Error GoTo 0
            rng(i, 9) = s(UBound(s))
        Next
        ws.Range("A2:I" & lr).Value = rng
        ws.Range("G2:G" & lr).NumberFormat = "dd/mm/yyyy"
        ws.Range("H2:H" & lr).NumberFormat = "hh:mm:ss"
    End If
Next
End Sub
 

File đính kèm

  • test.xlsm
    51.4 KB · Đọc: 4
Upvote 0
Xài đỡ trong khi chờ phương án khác hay hơn:
Mã:
Option Explicit
Sub test()
Dim lr&, i&, n&, s, rng, ws As Worksheet
Dim thang, nam, songay&
thang = InputBox("Nhap thang: (1-12)")
If Not IsNumeric(thang) Or thang > 12 Or thang <= 0 Or IsEmpty(thang) Then
    MsgBox "Thang khong hop le!"
    Exit Sub
End If
nam = InputBox("Nhap nam: (vd: 2022)")
If Not IsNumeric(nam) Or nam <= 0 Or IsEmpty(nam) Then
    MsgBox "Nam khong hop le!"
    Exit Sub
End If
songay = Day(WorksheetFunction.EoMonth(DateSerial(nam, thang, 1), 0))
For Each ws In Sheets
    n = n + 1
    If n <= songay Then
        ws.Name = Format(DateSerial(nam, thang, n), "ddmmyyyy")
        lr = ws.Cells(Rows.Count, "A").End(xlUp).Row
        ws.Range("G2:I" & lr).ClearContents
        rng = ws.Range("A2:I" & lr).Value
        For i = 1 To UBound(rng)
            rng(i, 7) = DateSerial(nam, thang, n)
            s = Split(Replace(rng(i, 1), ":", "-"), "-")
            On Error Resume Next
            rng(i, 8) = TimeSerial(s(0), s(1), s(2))
            On Error GoTo 0
            rng(i, 9) = s(UBound(s))
        Next
        ws.Range("A2:I" & lr).Value = rng
        ws.Range("G2:G" & lr).NumberFormat = "dd/mm/yyyy"
        ws.Range("H2:H" & lr).NumberFormat = "hh:mm:ss"
    End If
Next
End Sub
Em cám ơn bác nhiều nhiều
 
Upvote 0
Tác giả bài đăng gọi 'Cụ' & xưng "Em" mà bạn!
Nếu nghĩa đen 'Cụ' dành cho những người có tuồi 70±10 thì DĐ có cỡ chục cơ đấy!
...
Nếu tính nghĩ bóng, cụ là "công cụ" (*1) thì diễn đàn này số "cụ" đếm không xuể.

(*1) Hiện tượng người hỏi coi người đáp như công cụ giải quyết vấn đề của mình là hiện tượng tất có trên GPE.
 
Upvote 0
Tác giả bài đăng gọi 'Cụ' & xưng "Em" mà bạn!
Nếu nghĩa đen 'Cụ' dành cho những người có tuồi 70±10 thì DĐ có cỡ chục cơ đấy!

Chúc các bạn có tuần làm việc hiệu quả
hehe...
Trên GPE em nhỏ nhỏ thế chứ
trong nhà cũng có đứa gọi là cụ rồi đó!
bác kinh chưa?
 
Upvote 0
Web KT
Back
Top Bottom