Tạo nút xóa dữ liệu

Liên hệ QC

dangvu808

Thành viên mới
Tham gia
14/1/07
Bài viết
22
Được thích
0
Xin chào,

Tình hình là em có một file gồm nhiều sheet, mỗi sheet sẽ có những vùng để nhập dữ liệu. Em muốn tạo nút bấm bằng Visual Basic để mỗi khi tác động thì mọi dữ liệu trong vùng chỉ định sẵn (ở nhiều sheet) sẽ bị xóa.

Em gởi kèm file mẫu cho các anh em tiện "ra tay".

Xin cám ơn.
 

File đính kèm

Xin chào,

Tình hình là em có một file gồm nhiều sheet, mỗi sheet sẽ có những vùng để nhập dữ liệu. Em muốn tạo nút bấm bằng Visual Basic để mỗi khi tác động thì mọi dữ liệu trong vùng chỉ định sẵn (ở nhiều sheet) sẽ bị xóa.

Em gởi kèm file mẫu cho các anh em tiện "ra tay".

Xin cám ơn.
Cái này bạn làm bằng tay cũng nhanh mà:
- Chọn sheet đầu, bấm phím Shift rồi chọn sheet cuối
- Chọn vùng cần xóa rồi bấm Delete
Nó sẽ xóa vùng ấy trên tất cả các sheet 1 lượt
 
Chào bạn,

Nếu file chỉ có một vài sheet và một vài vùng dữ liệu thì xóa cũng nhanh, đằng này file của mình hơn 30sheet, cả chục vùng dữ liệu cần xóa. Nên làm "thủ công" cũng mất khá thời gian đấy.

Thân.
 
Vấn đề không khó, khó ở chỗ làm sao mở được file của bạn khi chỉ có MS Off. 2003
 
Theo yêu cầu như trong file thì chỉ cần macro như thế này:
Mã:
Sub Button1_Click()
For Each sh In ActiveWorkbook.Sheets
    [B:B].EntireColumn.ClearContents
    [F:F].EntireColumn.ClearContents
    [K:K].EntireColumn.ClearContents
Next
End Sub
 
Chào bạn,

Nếu file chỉ có một vài sheet và một vài vùng dữ liệu thì xóa cũng nhanh, đằng này file của mình hơn 30sheet, cả chục vùng dữ liệu cần xóa. Nên làm "thủ công" cũng mất khá thời gian đấy.

Thân.
Này nha:
- Cách làm bằng tay như tôi hướng dẩn ở trên không phụ thuộc vào số lượng sheet... Dù bạn có 100 sheet cũng làm 1 lần thôi: Chọn Sheet đầu, bấm Shift rồi chọn sheet cuối
- Còn về việc phải xóa nhiều vùng... Nếu so sánh giữa cách xóa bằng tay và VBA thì cách nào bạn cũng phải tốn 1 công chọn vùng, đúng không (trừ phi vùng này là cố định ta biết trước) ---> Vã lại bạn cũng có thể phối hợp phím Ctrl để chọn nhiều vùng 1 lần cơ mà
Theo yêu cầu như trong file thì chỉ cần macro như thế này:
Mã:
Sub Button1_Click()
For Each sh In ActiveWorkbook.Sheets
    [B:B].EntireColumn.ClearContents
    [F:F].EntireColumn.ClearContents
    [K:K].EntireColumn.ClearContents
Next
End Sub
Tôi nghĩ đâu cần For ---> Làm bằng tay tôi xóa được 1 lần 100 sheet thì cớ gì phải For
 
Này nha:
- Cách làm bằng tay như tôi hướng dẩn ở trên không phụ thuộc vào số lượng sheet... Dù bạn có 100 sheet cũng làm 1 lần thôi: Chọn Sheet đầu, bấm Shift rồi chọn sheet cuối
- Còn về việc phải xóa nhiều vùng... Nếu so sánh giữa cách xóa bằng tay và VBA thì cách nào bạn cũng phải tốn 1 công chọn vùng, đúng không (trừ phi vùng này là cố định ta biết trước) ---> Vã lại bạn cũng có thể phối hợp phím Ctrl để chọn nhiều vùng 1 lần cơ mà

Tôi nghĩ đâu cần For ---> Làm bằng tay tôi xóa được 1 lần 100 sheet thì cớ gì phải For

Xin chào 2 bạn,

Làm bằng tay thì cũng được, nhưng mình vẫn thích cách bấm 1 nút là xóa tất!

Macro của bạn HoangVuLuan mình làm thử rồi, nhưng chỉ xóa được dữ liệu trong sheet thôi, những sheet khac thì lại không! Xem lại giúp mình nha.

Cám ơn 2 bạn đã giúp.
 
Bạn sửa lại theo mã sau, sẽ xóa nội dung của 3 cột B, F, K trên tất cả các sheet có trong workbook theo như ý của bạn
Mã:
Private Sub CommandButton1_Click()
    ActiveWorkbook.Sheets.Select
    Range("B:B,F:F,K:K").Select
    Selection.ClearContents
    Sheets(1).Activate
    [a1].Activate
End Sub
 
Web KT

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

Back
Top Bottom