Có cách nào đổi tên Sheet hàng loạt = ô A1 trong mỗi Sheet không ạ?
Cứ kêu vài trăm để tăng mức độ "..." lên? PHP: Sub vidu()
Dim ws As Worksheet
On Error Resume Next ''Tên sheet không chứa các ký tự đặc biêt: ?/\* và không trùng tên nhau
For Each ws In ThisWorkbook.Worksheets
If Len(ws.Range("A1").Value) > 0 Then
ws.Name = ws.Range("A1").Value
End If
Next ws
End Sub
Em có vài trăm thật. Nhiều sheet nhưng mỗi Sheet rất nhẹ. Hàng ngày nhập liệu mới. Do thao tác trên các sheet cũng giống y nhau luôn nên em tính dùng Macro. Cứ kêu vài trăm để tăng mức độ "..." lên? PHP: Sub vidu()
Dim ws As Worksheet
On Error Resume Next ''Tên sheet không chứa các ký tự đặc biêt: ?/\* và không trùng tên nhau
For Each ws In ThisWorkbook.Worksheets
If Len(ws.Range("A1").Value) > 0 Then
ws.Name = ws.Range("A1").Value
End If
Next ws
End Sub
Em có 1 file excel rất nhiều Sheet: Sheet 1, Sheet 2, .... khoảng vài trăm cái có form giống nhau.
A1 dạng chuỗi: AT02D ; CB12T; ...
Hiện em còn đang muốn một ý định đổi tên các Sheet theo thứ tự 001->300. Rồi làm cái vòng lặp macro cho nó làm hết các sheet từ 1->300.
Cảm ơn bác để e thử luôn cách bác bảo đây!
- #4
Tuyệt vời! EM CẢM ƠN BÁC NHIỀU! Cứ kêu vài trăm để tăng mức độ "..." lên? PHP: Sub vidu()
Dim ws As Worksheet
On Error Resume Next ''Tên sheet không chứa các ký tự đặc biêt: ?/\* và không trùng tên nhau
For Each ws In ThisWorkbook.Worksheets
If Len(ws.Range("A1").Value) > 0 Then
ws.Name = ws.Range("A1").Value
End If
Next ws
End Sub
- #5
Cứ kêu vài trăm để tăng mức độ "..." lên? PHP: Sub vidu()
Dim ws As Worksheet
On Error Resume Next ''Tên sheet không chứa các ký tự đặc biêt: ?/\* và không trùng tên nhau
For Each ws In ThisWorkbook.Worksheets
If Len(ws.Range("A1").Value) > 0 Then
ws.Name = ws.Range("A1").Value
End If
Next ws
End Sub Có trường hợp thế này sẽ phá vỡ "thế trận":
- Ta đang có 20 sheet
- Cell A1 các sheet có giá trị lần lượt là: T01, T02... đến T20
- Xui xẻo, sheet ở index thứ
2 đang có tên T01, sheet ở index thứ 3 đang có tên T02.... vân... vân... đại khái thế!
Vậy ngay từ đầu chạy code đã bị trùng tên
Trường hợp này tính sao?
Cái vụ đổi tên sheet thấy dễ nhưng cũng không phải dễ
- #6
Có trường hợp thế này sẽ phá vỡ "thế trận": Ủa, gì đó anh? Gán cái tên mới có một dòng nhưng bẫy lỗi thì cần nhiều dòng...
- Ta đang có 20 sheet
- Cell A1 các sheet có giá trị lần lượt là: T01, T02... đến T20
- Xui xẻo, sheet ở index thứ 2 đang có tên T01, sheet ở index thứ 3 đang có tên T02.... vân... vân... đại khái thế!
Vậy ngay từ đầu chạy code đã
bị trùng tên
Trường hợp này tính sao?
Cái vụ đổi tên sheet thấy dễ nhưng cũng không phải dễ
Em có dòng thứ 2 trong sub để lường tới những cái anh nói đó.
"On Error Resume Next ''Tên sheet không chứa các ký tự đặc biêt: ?/\* và không trùng tên nhau"
Chủ thớt hay ai đó muốn không muốn "vỡ" thì tự làm tiếp thôi, em bận rồi.
- #7
Ủa, gì đó anh? Gán cái tên mới có một dòng nhưng bẫy lỗi thì cần nhiều dòng... Tôi cũng chỉ nói theo những gì tôi biết.
Em có dòng thứ 2 trong sub để lường tới những cái anh nói đó.
"On Error Resume Next ''Tên sheet không chứa các ký tự đặc biêt: ?/\* và không trùng tên nhau"
Chủ thớt hay ai đó muốn không muốn
"vỡ" thì tự làm tiếp thôi, em bận rồi.
Với bài toán đổi tên nhiều sheets theo list cho trước, ai có hứng thú bàn xem ai có giải thuật tốt nhất thì ta tiếp. Không hứng thì thôi vậy
- #8
Em chạy thử và thấy khá ưng với cách của bác @befaint. Có trường hợp thế này sẽ phá vỡ "thế trận": Hiện em có 1 vấn đề vẫn liên quan đến gán tên sheet. Mong được các bác GPE giúp đỡ. Bác @ndu96081631 và mọi người chỉ giúp em với ạ.
Em có 2 sheet giống hệt nhau (Do không để ý nên đã nhân bản 2 lần). Vậy là 1 sheet đằng trước đổi tên, sheet đằng sau thì tên giữ nguyên.
- Ta đang có 20 sheet
- Cell A1 các sheet có giá trị lần lượt là: T01, T02... đến T20
- Xui xẻo, sheet ở index thứ 2 đang có tên T01, sheet ở index thứ 3 đang có tên T02.... vân... vân... đại khái thế!
Vậy ngay từ đầu chạy code đã bị trùng tên
Trường hợp này tính sao?
Cái vụ đổi tên sheet thấy dễ nhưng cũng không phải dễ
Đề bài:
- Em có 20 sheet: T01, T02, ... T20
- Tại sheet: TỔNG HỢP
A1 = T01
A2 = T02
...
A20 = T20
->
Bây giờ em muốn tại sheet TỔNG HỢP, cột B dùng giá trị bên cột A để chọn sheet tương ứng.
Ví dụ khi tính tổng:
B1 = IFERROR(SUM('T01'!N6:W6);"")
B2 = IFERROR(SUM('T02'!N6:W6);"")
...
B20 = IFERROR(SUM('T20'!N6:W6);"")
- #9
Có cách nào đổi tên Sheet hàng loạt = ô A1 trong mỗi Sheet không ạ? Theo tôi thì chẳng cần theo dõi vài trăm cái sheet khi
mẫu giống nhau làm gì (chỉ có nội dung là khác). Chỉ cần 2 sheet là đủ: Cũng có thể sheet mẫu đó, khi nhập nội dung xong thì Add sheet mới với tên sheet là nội dung của 1 Cell nào đó?
Em có 1 file excel rất nhiều Sheet: Sheet 1, Sheet 2, .... khoảng vài trăm cái có form giống nhau.
A1 dạng chuỗi: AT02D ; CB12T; ...
1/ Thiết kế 1 sheet theo dõi.
2/ Làm 1 sheet mẫu (bạn nên đưa 1 cái mẫu lên), dùng sheet này lưu dữ liệu cần vào sheet theo dõi, muốn xem lại nội dung cái gì? (biên bản, giấy mời, tờ trình..v..v...) thì dùng số của nó để truy vấn lại (cũng tại sheet này).
- #10
Anh sếp em yêu cầu phải như thế. Em biết làm sao bây giờ ^^. Tài liệu riêng tư lại không được up lên. Theo tôi thì chẳng cần theo dõi vài trăm cái sheet khi mẫu giống nhau làm gì (chỉ có nội dung là khác). Chỉ cần 2 sheet là đủ: Cũng có thể
sheet mẫu đó, khi nhập nội dung xong thì Add sheet mới với tên sheet là nội dung của 1 Cell nào đó?
- Có nhiều sheet vì là: mỗi nhân viên nộp báo cáo ngày khoảng 20 khách hàng. Các nhân viên không được biết đến số liệu của nhau. Nên không làm 1 sheet tổng hợp rồi cho ae cùng làm luôn được. Công việc em là gop hết các số liệu chính trong các sheet của anh em lại.
1/ Thiết kế 1 sheet theo dõi.
2/ Làm 1 sheet mẫu (bạn nên đưa 1 cái mẫu lên), dùng sheet này lưu dữ liệu cần vào sheet theo dõi, muốn xem lại nội dung cái gì? (biên bản, giấy mời, tờ trình..v..v...) thì dùng số của nó để truy vấn lại (cũng tại sheet này).
- #11
Anh sếp em yêu cầu phải như thế. Em biết làm sao bây giờ ^^. Tài liệu riêng tư lại không được up lên. Cái sheet mẫu bạn không biết giả định à, tên thì ông A, bà B, địa chỉ thì An Giang, Vũng Tàu, Minh Hải. Còn hàng hóa thì xoài, ổi, mận để người ta còn biết vị trí của từng Cell đó nằm chỗ nào? Bạn không đọc kỹ bài 9 tôi nêu thế này: Tôi chỉ góp ý và nêu cách làm. Còn lại là người theo dõi thích kiểu gì?
- Có nhiều sheet vì là: mỗi nhân viên nộp báo cáo ngày khoảng 20 khách hàng. Các nhân viên không được biết đến số liệu của nhau. Nên không làm 1 sheet tổng hợp rồi cho ae cùng làm luôn
được. Công việc em là gop hết các số liệu chính trong các sheet của anh em lại.
Cũng có thể dùng sheet mẫu đó, khi nhập nội dung vào sheet mẫu xong thì Add sheet mới với tên sheet là nội dung của 1 Cell nào đó?
Nghĩa là cách
làm thì và theo dõi như tôi nêu ở bài 9, chỉ khác nội dung bạn nêu tại bài 1 là dùng 1 sheet mẫu khi in xong thì Add Sheet là có tất cả các sheet, còn nội dung thì lưu vào sheet theo dõi để còn tổng hợp báo cáo.
Lần chỉnh sửa cuối: 2/3/18
- #12
Em hiểu ý bác mà. Làm 1 Sheet mẫu (sheet này cố định, tổng hợp, lấy số liệu bằng cách liên kết tất cả các sheet kia lại) Cái sheet mẫu bạn không biết giả định à, tên thì
ông A, bà B, địa chỉ thì An Giang, Vũng Tàu, Minh Hải. Còn hàng hóa thì xoài, ổi, mận để người ta còn biết vị trí của từng Cell đó nằm chỗ nào? Bạn không đọc kỹ bài 9 tôi nêu thế này:
Nhưng cái form nó không giống nhau hoàn toàn. Yêu cầu tổng hợp mỗi lúc lại khác. Khó làm 1 sheet mẫu lắm bác ạ
Cũng có thể dùng sheet mẫu đó, khi nhập nội dung vào sheet mẫu xong thì Add sheet mới với tên sheet là nội dung của 1 Cell nào đó?
Nghĩa là cách theo dõi như bài 9 tôi nêu, chỉ khác nội dung bạn nêu bài 1 là dùng 1 sheet mẫu khi in xong thì Add Sheet là có tất cả các sheet, còn nội dung thì lưu vào sheet
theo dõi để còn tổng hợp báo cáo.
- #13
Còn muốn làm theo kiểu bạn thì thế này:
1/ Lấy danh sách tên sheet vào 1 cột nào đó.
2/ Gõ tên sheet vào 1 cột khác với tên sheet mới với Cell tương ứng và đổi tên sheet.
- #14
Em hiểu ý bác mà. Làm 1 Sheet mẫu (sheet này cố định, tổng hợp, lấy số liệu bằng cách liên kết tất cả các sheet kia lại) Tại bạn không hiểu, chứ
thực tế bạn có 10 loại mẫu khác nhau cũng làm được và cũng chỉ lưu dữ liệu vào 1 sheet theo dõi. Nói chung, không có liên kết gì cả chỉ cần 1 sheet theo dõi là làm được tất cả các thứ cần. Tôi ví dụ công việc là 1 thửa đất nông nghiệp và sheet theo dõi nó là 1 cái kho (chứa tất cả mọi thứ công cụ), muốn cuốc đất, cắt cỏ, chặt cây ..v..v.....Thì vào kho lấy cái công cụ tương ứng cho phù hợp với công việc đó.
Nhưng cái form nó không giống nhau hoàn toàn. Yêu cầu tổng hợp mỗi lúc lại khác. Khó làm 1 sheet mẫu lắm bác ạ
Lần chỉnh sửa cuối: 2/3/18
- #15
E nghĩ mãi rồi không thông bác ạ Tại bạn không hiểu, chứ thực tế bạn có 10 loại mẫu khác nhau cũng làm được và cũng chỉ lưu dữ liệu vào 1 sheet theo dõi. Nói chung, không có liên kết gì cả chỉ cần 1 sheet theo dõi là làm được tất cả các thứ cần. Tôi ví dụ công việc là 1 thửa đất
nông nghiệp và sheet theo dõi nó là 1 cái kho (chứa tất cả mọi thứ công cụ), muốn cuốc đất, cắt cỏ, chặt cây ..v..v.....Thì vào kho lấy cái công cụ tương ứng cho phù hợp với công việc đó. Hiện em mới nghĩ ra cách thủ công này: Hơi mất công chút ^^!
1/ Tạo cột phụ C:
C1: IFERROR(SUM('T01'!N6:W6);"")
C2: IFERROR(SUM('T01'!N6:W6);"")
..
C20: IFERROR(SUM('T01'!N6:W6);"")
(cột C dạng text, không có dấu "=")
2/ Tạo cột phụ D:
D1: =REPLACE(C1,14,3,A1) ->
Trả về kết quả dạng text, không có dấu "=" -> D1: IFERROR(SUM('T01'!N6:W6);"")
D2: =REPLACE(C2,14,3,A1) -> Trả về kết quả dạng text, không có dấu "=" -> D2: IFERROR(SUM('T02'!N6:W6);"")
..
D20: =REPLACE(C3,14,3,A1) -> Trả về kết quả dạng text, không có dấu "=" -> D20: IFERROR(SUM('T20'!N6:W6);"")
3/ Tạo cột phụ E:
- Copy cột D -> Paste value lên cột E
- Ctrl + H: thay đổi "IFERROR" thành "=IFERROR"
- #16
E nghĩ mãi rồi không thông bác ạ Hiện em mới nghĩ ra cách thủ công này: Hơi mất công chút
^^! Có cách nào thay đổi tên sheet theo kiểu: T01, T02, T03....
1/ Tạo cột phụ C:
C1: IFERROR(SUM('T01'!N6:W6);"")
C2: IFERROR(SUM('T01'!N6:W6);"")
..
C20: IFERROR(SUM('T01'!N6:W6);"")
(cột C dạng text, không có dấu "=")
2/ Tạo cột phụ D:
D1: =REPLACE(C1,14,3,A1) -> Trả về kết quả dạng text, không có dấu "=" -> D1: IFERROR(SUM('T01'!N6:W6);"")
D2: =REPLACE(C2,14,3,A1) -> Trả về kết quả dạng text, không có dấu "=" -> D2: IFERROR(SUM('T02'!N6:W6);"")
..
D20: =REPLACE(C3,14,3,A1) -> Trả về kết quả dạng text, không có dấu "=" -> D20: IFERROR(SUM('T20'!N6:W6);"")
3/ Tạo cột phụ E:
- Copy cột D -> Paste value lên cột E
- Ctrl + H: thay đổi "IFERROR" thành "=IFERROR"
Sheet Tổng hợp:
- A1: Sum('T01'!A1:B1)
- A2: Sum('T02'!A1:B1)
- A3: Sum('T03'!A1:B1)
Số sheet tăng dần
- #17
Có cách nào thay đổi tên sheet theo kiểu: T01, T02, T03.... Có vài cách, bạn thử gửi file lên xem cụ thể ra sao.
Sheet Tổng hợp:
- A1: Sum('T01'!A1:B1)
- A2: Sum('T02'!A1:B1)
- A3: Sum('T03'!A1:B1)
Số sheet tăng dần
Lần chỉnh sửa cuối: 23/3/21
- #18
Có cách nào thay đổi tên sheet theo kiểu: T01, T02, T03.... Bạn mới có sáng kiến mà chưa chịu suy nghĩ đến hậu quả của sáng kiến ấy.
Sheet Tổng hợp:
- A1: Sum('T01'!A1:B1)
- A2: Sum('T02'!A1:B1)
- A3: Sum('T03'!A1:B1)
Số sheet tăng dần
1. Sheet tổng hợp tên gì?
2. kể từ sheet nào có thứ tự? hay đổi tên mọi sheet chỉ chừa sheet tổng hợp thôi?