Tạo nhiều sheets và đổi tên

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

phanngoctrai1981

Thành viên chính thức
Tham gia
16/4/23
Bài viết
60
Được thích
0
Anh chị xem giúp em.​
1/ Nếu nhập đủ 12 dòng thì Code (lấy kết quả kiểm nghiệm và tạo sheet mới) chạy bình thường nhưng nếu ở cột A mà nhập ít hơn 12 dòng dữ liệu thì code bị lỗi,​
2/ Không muốn hiện thông báo khi xóa nhiều sheet​
Em mới tập tành VBA mong các Anh/chị xem file khắc phục lỗi giúp ah.​
 

File đính kèm

  • Tạo flie ket quả kiểm nghiệm.xlsm
    45.2 KB · Đọc: 10
Anh chị xem giúp em.​
1/ Nếu nhập đủ 12 dòng thì Code (lấy kết quả kiểm nghiệm và tạo sheet mới) chạy bình thường nhưng nếu ở cột A mà nhập ít hơn 12 dòng dữ liệu thì code bị lỗi,​
2/ Không muốn hiện thông báo khi xóa nhiều sheet​
Em mới tập tành VBA mong các Anh/chị xem file khắc phục lỗi giúp ah.​
2 không muốn thông báo thì bạn thêm dòng
Mã:
Application.DisplayAlerts = False
trước khi thực thi dòng lệnh xóa
và sau khi chạy dòng lệnh xóa
Mã:
Application.DisplayAlerts = True
1 lỗi không nhập đủ 12 dòng, mình xem code không hiểu ý bạn muốn chạy nhưng đang đoán là do lỗi
ở vòng lặp
Mã:
For i = 1 To 12
bạn sửa lại chỗ này cho phù hợp. nếu cột a nhập ít hơn 12 thì không đủ để vòng lặp chạy nên báo lỗi.
nên sửa lại chỗ 12 thành biến số không cố định X, và X thì bạn xác định theo số lượng cell ở cột a bạn nhập.
Đoán thế thôi :D
 
Lần chỉnh sửa cuối:
Upvote 0
Mình đã test với file của bạn: sheet DATA có 12 mã lô, trong đó 4 mã có data
Chạy code thử thì vẫn tạo ra 12 sheets bình thường, không báo lỗi.
Click vô "Xóa Sheet" thì xóa mà không hề bị hỏi gì hết.
Vậy là sao nhỉ?
 
Upvote 0
1. Sửa đoạn 'For i = 1 To 12' thành 'For i = 1 To Sheet1.Cells(Rows.Count, 1).End(xlUp).Row - 5'
2. Thêm Application.DisplayAlerts = False vào đầu và Application.DisplayAlerts = True vào cuối sub Xoasheet.
3. Trong sub copy nên cho đoạn code xóa sheet vào trước để code trơn tru hơn.
 
Upvote 0
Anh có thể chỉ cách khắc phục lỗi khi nhập không đủ 12 dòng dữ liệu trong sheet Data khi chạy code thêm sheet không ạh
Bài đã được tự động gộp:

1. Sửa đoạn 'For i = 1 To 12' thành 'For i = 1 To Sheet1.Cells(Rows.Count, 1).End(xlUp).Row - 5'
2. Thêm Application.DisplayAlerts = False vào đầu và Application.DisplayAlerts = True vào cuối sub Xoasheet.
3. Trong sub copy nên cho đoạn code xóa sheet vào trước để code trơn tru hơn.
Ôi hay quá ah, em cảm ơn
Bài đã được tự động gộp:

Đúng ý em rồi, em Cam ơn các Anh đã nhiệt tình giúp đỡ.
 
Upvote 0
Các Anh oi
Cũng file trên, em muốn không cho thực hiện tạo sheet mới khi chưa xóa các sheet hiện có và hiện thông báo phải xóa trước thì code như thế nào ạ.
 
Upvote 0
em mới tập tành, thật sự không biết phải viết như thế nào luôn á.
Nếu viết hộ luôn từ đầu đến cuối thì còn tập tành gì nữa bạn ơi, chịu khó mày mò tìm hiểu và thử lần lượt từng dòng gợi ý ở bài #7 là ổn và sẽ nhớ rất lâu. (Có thể phải thử đi thử lại nhiều lần luôn ấy).
 
Upvote 0
Nếu viết hộ luôn từ đầu đến cuối thì còn tập tành gì nữa bạn ơi, chịu khó mày mò tìm hiểu và thử lần lượt từng dòng gợi ý ở bài #7 là ổn và sẽ nhớ rất lâu. (Có thể phải thử đi thử lại nhiều lần luôn ấy).
Cảm ơn anh đã chỉ bài tham khảo. Em đã tự làm được yêu câu trên rồi.
 
Upvote 0
Web KT

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

Back
Top Bottom