Bạn thử dùng đoạn code này xem.Vì công việc của mình làm hàng ngày là phải nhập liệu theo mẫu có sẵn và in. Xin các huynh chỉ dùm mình tạo nút lệnh reset để khi ấn reset là dữ liệu ở các ô mới nhập bị xóa đi. Thanhks!
![]()
Sub Xoa()
Sodong = Range("A:B").End(xlDown).Row
Range("A2:B" & Sodong).Clear
End Sub
Tôi nghĩ để tăng thêm tính hiệu quả của vụ CLEAR này thì cần phải hiểu công việc cụ thể của bạn là gì, rồi kết hợp chung vào 1 macro, như thế hay hơn... chứ chỉ đơn giãn xóa vài ba dòng ấy thì xóa bằng tay cũng đâu có lâu...Vì công việc của mình làm hàng ngày là phải nhập liệu theo mẫu có sẵn và in. Xin các huynh chỉ dùm mình tạo nút lệnh reset để khi ấn reset là dữ liệu ở các ô mới nhập bị xóa đi. Thanhks!
![]()
Tranh chổ 1 cái:Tôi nghĩ để tăng thêm tính hiệu quả của vụ CLEAR này thì: Ví dụ như vầy nhé: Khi bạn nhập liệu xong, bấm nút cái thì dử liệu nhập sẽ dc cập nhật vào nơi nao đó, tiếp theo mới xóa form để nhập mới...
Bạn nghĩ sao? ANH TUẤN
Option Explicit
Sub ClearAll()
Dim lRow As Long
lRow = [b65432].End(xlUp).Row + 9
With Range("A2:B" & lRow)
1 .Copy Destination:=Sheet2.Range("A" & Sheet2.[a65432].End(xlUp).Row + 1)
.ClearContents
End With
End Sub
Tôi nghĩ để tăng thêm tính hiệu quả của vụ CLEAR này thì cần phải hiểu công việc cụ thể của bạn là gì, rồi kết hợp chung vào 1 macro, như thế hay hơn... chứ chỉ đơn giãn xóa vài ba dòng ấy thì xóa bằng tay cũng đâu có lâu...
Ví dụ như vầy nhé: Khi bạn nhập liệu xong, bấm nút cái thì dử liệu nhập sẽ dc cập nhật vào nơi nao đó, tiếp theo mới xóa form để nhập mới...
Bạn nghĩ sao?
ANH TUẤN
Muốn làm nút lệnh, thì tìm trên diễn đàn, hay vô phần VBA của chữ kí của mình í (tuy hơi dài!)Ý là muốn tạo 1 command khi ấn nút này thì dữ liệu ở những ô có nền màu xanh nhạt mất hết để nhập mới.
Sub Xoa()
Dim Rng As Range
Application.ScreenUpdating = False
Set Rng = Union(Range("B3:O3"), [a5], Range("D7:E7"), Range("G9:O10"), _
Range("B11:C11"), Range("I13:J13"))
Rng.ClearContents
Set Rng = Range("B2:e2")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("B4:F4")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("G5:K5")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("b6:C6")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("d6:e6")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("B7:C7")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("B8:e8")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("B9:e9")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("B10:e10")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("F11:K11")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("A13:d13")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("E13:H13")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("A14:d14")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("E14:H14")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("A15:d15")
UnMergeCells Rng: Rng.Merge
Set Rng = Range("E15:H15")
UnMergeCells Rng: Rng.Merge
End Sub
[B]Sub UnMergeCells(Clls As Range)[/B]
Clls.UnMerge: Clls.ClearContents
[B]End Sub[/B]
Muốn làm nút lệnh, thì tìm trên diễn đàn, hay vô phần VBA của chữ kí của mình í (tuy hơi dài!)
PHP:Sub Xoa() Dim Rng As Range Application.ScreenUpdating = False Set Rng = Union(Range("B3:O3"), [a5], Range("D7:E7"), Range("G9:O10"), _ Range("B11:C11"), Range("I13:J13")) Rng.ClearContents Set Rng = Range("B2:e2") UnMergeCells Rng: Rng.Merge Set Rng = Range("B4:F4") UnMergeCells Rng: Rng.Merge Set Rng = Range("G5:K5") UnMergeCells Rng: Rng.Merge Set Rng = Range("b6:C6") UnMergeCells Rng: Rng.Merge Set Rng = Range("d6:e6") UnMergeCells Rng: Rng.Merge Set Rng = Range("B7:C7") UnMergeCells Rng: Rng.Merge Set Rng = Range("B8:e8") UnMergeCells Rng: Rng.Merge Set Rng = Range("B9:e9") UnMergeCells Rng: Rng.Merge Set Rng = Range("B10:e10") UnMergeCells Rng: Rng.Merge Set Rng = Range("F11:K11") UnMergeCells Rng: Rng.Merge Set Rng = Range("A13:d13") UnMergeCells Rng: Rng.Merge Set Rng = Range("E13:H13") UnMergeCells Rng: Rng.Merge Set Rng = Range("A14:d14") UnMergeCells Rng: Rng.Merge Set Rng = Range("E14:H14") UnMergeCells Rng: Rng.Merge Set Rng = Range("A15:d15") UnMergeCells Rng: Rng.Merge Set Rng = Range("E15:H15") UnMergeCells Rng: Rng.Merge End Sub
Mã:[B]Sub UnMergeCells(Clls As Range)[/B] Clls.UnMerge: Clls.ClearContents [B]End Sub[/B]
sao không ai có ý kiến về vấn đề của mnình hết vậy?
Sao bác không dùng luôn cái Union ạ. VD như:Nhưng sau đó mình thấy có thể nhét các dòng lệnh lặp lại này vô vòng lặp!
Nếu tác gia vẫn cần dùng thì mình sẽ gởi qua tin nhắn!
Hay bạn nào cho chúng vô vòng lặp For . . . Next giúp Lubabi cái!?!
Sub Moi()
Dim Sh3 As Worksheet
Set Sh3 = Sheet3
Union(Sh3.Range("B2:E2"), Sh3.Range("B3:O3"), Sh3.Range("B4:F4"), _
Sh3.Range("A5"), Sh3.Range("G5:K5"), Sh3.Range("B6:E10"), _
Sh3.Range("G9:O10"), Sh3.Range("B11:C11"), _
Sh3.Range("F11:K11"), Sh3.Range("A13:J13"), _
Sh3.Range("A14:H15")).ClearContents
End Sub
Không đặng đâu Minh ơi!; Các ô đó là ô 'trộn' mà;Sao bác không dùng luôn cái Union ạ. VD như:
Dạ thưa bác, em dùng E2003 mà. Cái code đã để ý tới những ô 'trộn' (VD ô merge từ B2 tới E2 thì em đã chọn luôn là Range("B2:E2") để khắc phục) và em chạy thử rồi thấy OK ạKhông đặng đâu Minh ơi!; Các ô đó là ô 'trộn' mà;
Hay 'Chú mày' dùng E2007?