Xoá sheet trên excel bằng macro

Liên hệ QC

cuabacang

Thành viên mới
Tham gia
11/8/14
Bài viết
32
Được thích
0
thanks ALL mọi người!
cả nhà cho minh hỏi một chút kinh nghiệm như sau nhé:
hiện tại file excel của minh nó rất nhiều sheet nặng vì thế mình muốn tạo ra 1 sheet riêng rồi tạo macro để khi muốn ấn vào là nó xoá các sheet mình đã chọn( mình có các sheet 1.11, 1.12, 1.13, 2.11, 2.12, 2.13..... vv) mình muốn là khi ấn cái là nó sẽ xoá các sheet mà tên sheet đầu"1."hoăc"2." vv
vậy rất mong ace trên GPE giúp đỡ nhé.
 
thanks ALL mọi người!
cả nhà cho minh hỏi một chút kinh nghiệm như sau nhé:
hiện tại file excel của minh nó rất nhiều sheet nặng vì thế mình muốn tạo ra 1 sheet riêng rồi tạo macro để khi muốn ấn vào là nó xoá các sheet mình đã chọn( mình có các sheet 1.11, 1.12, 1.13, 2.11, 2.12, 2.13..... vv) mình muốn là khi ấn cái là nó sẽ xoá các sheet mà tên sheet đầu"1."hoăc"2." vv
vậy rất mong ace trên GPE giúp đỡ nhé.
Sheet nào bắt đầu là số thì code mần thịt hết, cẩn thân nhá
PHP:
Sub xoasheet()
Application.DisplayAlerts = False
Dim sh As Worksheet
For Each sh In Worksheets
   If IsNumeric(Left(sh.Name, 1)) Then      
      sh.Delete
   End If
Next
Application.DisplayAlerts = True
End Sub
 
Lần chỉnh sửa cuối:
thanks ALL mọi người!
cả nhà cho minh hỏi một chút kinh nghiệm như sau nhé:
hiện tại file excel của minh nó rất nhiều sheet nặng vì thế mình muốn tạo ra 1 sheet riêng rồi tạo macro để khi muốn ấn vào là nó xoá các sheet mình đã chọn( mình có các sheet 1.11, 1.12, 1.13, 2.11, 2.12, 2.13..... vv) mình muốn là khi ấn cái là nó sẽ xoá các sheet mà tên sheet đầu"1."hoăc"2." vv
vậy rất mong ace trên GPE giúp đỡ nhé.

"11." có xoá không?
 
Miễn chủ thớt xoá được là ok rồi. Nhưng mà chưa nghe chủ thớt la làng lên chắc có thể xoá được

******
Hic mà hình như hỏi chủ thớt, đâu phải hỏi code mình có xóa được không. Hơi vô duyên rồi.
 
Lần chỉnh sửa cuối:
Có thể đưa tên sheet cần xoá vào InputBox để tiện lựa chọn.
PHP:
Sub DelWs()
Application.DisplayAlerts = False
Dim Ws As Worksheet, WsName
WsName = Application.InputBox("Nhap ten sheet:")
For Each Ws In ThisWorkbook.Worksheets
    If UCase(Ws.Name) Like UCase(WsName & "*") And Ws.Name <> "Sheet1" Then
        Ws.Delete
    End If
Next Ws
Application.DisplayAlerts = True
End Sub
 
Có thể đưa tên sheet cần xoá vào InputBox để tiện lựa chọn.
...

Đã lỡ viết hàm kiểu dùng lâu dài thì chơi luôn phần code "Select" những sheets đạt điều kiện, đưa chuỗi tên lên MsgBox YesNoCancel để cho người dùng xem lại cho chắc ăn, nếu Yes thì delete SelectedSheets
 
rất cảm ơn anh Quang Hải và các bản, như mà khi mình là như macro cua anh Hải thì nó lại xóa hết các sheet là sao. vây mong các ae nào giúp đỡ có thẻ làm 1 bản excel đê mình tiện xem các làm của các bạn. thank all
 
rất cảm ơn anh Quang Hải và các bản, như mà khi mình là như macro cua anh Hải thì nó lại xóa hết các sheet là sao. vây mong các ae nào giúp đỡ có thẻ làm 1 bản excel đê mình tiện xem các làm của các bạn. thank all
Nói rồi mà, sheet nào có tên bắt đầu là số thì nó mần thịt hết. Chắc không tin chứ gì
PHP:
Sub xoasheet()
Application.DisplayAlerts = False
Dim sh As Worksheet
For Each sh In Worksheets
   If Left(sh.Name, 1)= 1 Then  
      If Left(sh.Name, 1)= 2 Then    
         sh.Delete
      End If
   End If
Next
Application.DisplayAlerts = True
End Sub
 
Lần chỉnh sửa cuối:
Nói rồi mà, sheet nào có tên bắt đầu là số thì nó mần thịt hết. Chắc không tin chứ gì

Mã:
Sub xoasheet()
Application.DisplayAlerts = False
Dim sh As Worksheet
For Each sh In Worksheets
[COLOR=#ff0000]   If Left(sh.Name, 1)= 1 Then  
      If Left(sh.Name, 1)= 2 Then [/COLOR]   
         sh.Delete
      End If
   End If
Next
Application.DisplayAlerts = True
End Sub
Code này thì chắc chắn là không xóa sheet nào rồi.
 
Code này thì chắc chắn là không xóa sheet nào rồi.
ừ há, sao lại cho 2 cái And để xóa vậy trời. Lẽ ra phải vầy chứ

PHP:
Sub xoasheet()
Application.DisplayAlerts = False
Dim sh As Worksheet
For Each sh In Worksheets
   If Left(sh.Name, 1) = 1 Or Left(sh.Name, 1) = 2 Then
      sh.Delete
   End If
Next
Application.DisplayAlerts = True
End Sub
 
Lần chỉnh sửa cuối:
rất cảm ơn các bác đã giúp đỡ mình, mình sẽ tham khảo để chọn cho mình macro hợp lý để áp dụng, thank's all, hy vọng sẽ góp phần nâng cao trình độ excel
 
hic, mấy hôm nghỉ lên không lên được mạng, vậy các bác cho em hỏi nếu em có các sheet A110, A120, A130...., A210, A220, A230..., .... vậy mình sẽ đặt macro sao cho nó sẽ xóa các sheet có đầu A1 hoặc các đầu A2, A3....
Thank's all
 
hic, mấy hôm nghỉ lên không lên được mạng, vậy các bác cho em hỏi nếu em có các sheet A110, A120, A130...., A210, A220, A230..., .... vậy mình sẽ đặt macro sao cho nó sẽ xóa các sheet có đầu A1 hoặc các đầu A2, A3....
Thank's all
Nếu là mình thì sẽ mò theo kiểu abc. Nghĩ sao thì kêu code làm y vậy cho khoẻ.
Nếu có 100 dk thì code 100 dòng mỏi tay luôn
PHP:
For Each sh In Worksheets
   If Left(sh.Name, 2) = "A1" Then sh.Delete
   If Left(sh.Name, 2) = "A2" Then sh.Delete      
   If Left(sh.Name, 2) = "A3" Then sh.Delete
Next
 
gửi bác Quang Hải ý của em là muốn tạo ra tex box ví dụ xóa sheet đầu A1 là 1 texbox clip vào đấy là nó sẽ xóa sheet đó, và nhưng cái tương tự bác có giúp em cái macro này hộ em vì phần em làm cái này đang là phần chốt. Thank's Bác
 
Tất cả các sheets coa tên khởi đầu là "A1", "A2", "A3":
IF Sh.Name Like "A[123]*"
 
bạn vetmini thanh's bạn bạn có thể làm giúp mình ra dừng nói tắt dc ko, mình trình độ excel kém lắm thank's
 
bạn vetmini thanh's bạn bạn có thể làm giúp mình ra dừng nói tắt dc ko, mình trình độ excel kém lắm thank's

Tôi kỵ những câu viết nửa Việt nửa ngoại.
Tôi đã nói hơn một lần rồi. Có những trường hợp câu nửa Việt nửa ngoại mang ý mỉa mai châm biếm. Tôi không hiểu người viết cố ý vì rất giỏi về tiếng ngoại, hay vô tình vì không biết cách dùng.
 
ôi trời, thực ra mình chỉ cố gắng hỏi các bác thôi mà! còn từ Thank's mong bác "vetmini" cái tên cũng nửa Anh nửa Việt thông cảm vì nó như câu cửa miệng thôi, chứ mình cũng ko thích nói cái kiểu đấy bạn cứ xem cái từ "Thank's" mình đang cố gắng để mọi người giúp đỡ mình thôi, biết mỗi người mỗi ý mà, Vậy mong mọi người có giúp đỡ và thông cảm lẫn nhau đừng chỉ 1, 2 lỗi nhỏ mà làm mình phải khó chịu. EM XIN HẾT VÀ XIN CẢM ƠN ANH VETMINI ĐÃ GIÚP ĐỠ. VẬY MONG ANH GIÚP NỐT VẤN ĐỀ CỦA EM Ạ!
 
... "vetmini" cái tên cũng nửa Anh nửa Việt ...

Tên là tên. Chả nhẽ ông Blackmore tôi phải gọi là ông Đen Thêm à?
Hồi tôi còn nhỏ, những con vẹt chỉ bằng nắm tay người ta gọi là vẹt mini, từ này dùng để châm chọc những người mà hay nói theo người khác mà chả hiểu mình nói gì. Bây giờ thì bạn hiểu ý tôi nói về vấn đề "mỉa mai" chưa?

Mã:
dim sh as variant, dauTien as boolean
dauTien = True
For Each sh in WorkSheets
If sh.Name Like "A[123]*" Then
  sh.Select dauTien
  dauTien = False
End If
Next sh
ActiveWindow.SelectedSheets.Delete
 
Web KT

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

Back
Top Bottom