Em cám ơn thầy nha, nó đã giúp em nhiều trong công việc lắmCode như vầy sẽ là ẩn dòng có giá trị rổng tại cột D:
Còn để hiện ra thì hủy chế độ AutoFilter đi bằng đoạn code sau:PHP:Private Sub CommandButton3_Click() On Error Resume Next Range("D4:D1000").AutoFilter 1, "<>" End Sub
PHP:Private Sub CommandButton3_Click() On Error Resume Next ActiveSheet.AutoFilterMode = False End Sub
Bạn ơi cho mình hỏi dựa vào đâu mà mình ghi Sheet2? HÌnh như đó ko phải tên sheet. Sr mình mới tìm hiểu nên k rõ lắm!Bạn chắc cũng biết 1 ít về VBA nhỉ. Vậy code của bạn đây
Mã:Private Sub CommandButton1_Click() [SIZE=3][COLOR=#ff0000]Sheet2[/COLOR][/SIZE].Range("b2:c11").ClearContents End Sub
Các bạn cho mình hỏi với: mình có from nhập liệu có ListBox ở dưới như hình đính kèm giờ mình muốn viết code cho buttom xoá để nó (2) xoá dòng dữ liệu trong listbox đó đồng thời (1) xoá luôn dữ liệu có trong sheet đã nhập vào từ from đó thì làm sao ạ?
File đây ạ. Bạn xem giúp mình với. Mình mới làm quen với VBA(1) Nhìn vô CSDL của bạn thì muốn xóa dòng dữ liệu (DL) chắc chỉ có cách tìm ngày (nhập kho) của mã hàng đó; sau đó tìm mã hàng đó mà xóa thôi
(a) Tìm ngày nhập ta có thể áp dụng phương thức FIND() (với vài chú ý . . . khi sử dụng với DL là ngày-tháng-năm)
(b) Trong các dòng DL tìm thấy ta tìm dòng nào có mã hàng đó thì xóa đi
(2) Cái này sẽ khó 1 khi không thấy file Form mô tê răng chừ(!)
Private Sub CommandButton4_Click()
Dim Rws As Long, J As Long, DgXoa As Long, Num
Dim Rng As Range, sRng As Range: Dim MyAdd As String, THang As String
Rws = [B7].CurrentRegion.Rows.Count
Set Rng = [A6].Resize(Rws)
Set sRng = Rng.Find(Me!txtngay.Value, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
MyAdd = sRng.Address
Do
THang = sRng.Offset(, 2).Value
If THang = Me!cbten.text Then
DgXoa = sRng.Row
Num = MsgBox("Xóa Ḍng Có Ngày " & sRng.Value & Chr(10) & "Tên Hàng: " & THang, 4, "GPE.COM")
If Num = 6 Then
Rows(DgXoa & ":" & DgXoa).Delete: Exit Do
End If
End If
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
Else
MsgBox "Nothing"
End If
End Sub
còn buttom cập nhật mình chưa biết viết thế nào, bạn giúp mình với. Xin cảm ơn bạn nhiềuMacro để xóa dòng trên trang tính sẽ là vầy:
PHP:Private Sub CommandButton4_Click() Dim Rws As Long, J As Long, DgXoa As Long, Num Dim Rng As Range, sRng As Range: Dim MyAdd As String, THang As String Rws = [B7].CurrentRegion.Rows.Count Set Rng = [A6].Resize(Rws) Set sRng = Rng.Find(Me!txtngay.Value, , xlFormulas, xlWhole) If Not sRng Is Nothing Then MyAdd = sRng.Address Do THang = sRng.Offset(, 2).Value If THang = Me!cbten.text Then DgXoa = sRng.Row Num = MsgBox("Xóa Ḍng Có Ngày " & sRng.Value & Chr(10) & "Tên Hàng: " & THang, 4, "GPE.COM") If Num = 6 Then Rows(DgXoa & ":" & DgXoa).Delete: Exit Do End If End If Set sRng = Rng.FindNext(sRng) Loop While Not sRng Is Nothing And sRng.Address <> MyAdd Else MsgBox "Nothing" End If End Sub
e xin lỗi vì chen ngang nhưng anh chị cho e hỏi chút là e tạo xong nút xóa và bây giờ muốn tạo nút undo thì hàm công thức như nào ạ. e có 1 công thức nhưng không biết chèn dữ liệu ạ. E cảm ơn !Bạn cho ghi macro rồi bạn phủ khối ở vùng vàng đó rồi bấm xóa, tắt ghi macro, rồi vào VBA sửa lại chút xíu cho gọn, sau đó gán macro đó vào nút lệnh thôi!
Sau khi ghi macro thì nó sẽ như vầy:
PHP:Sub Macro1() ' ' Macro1 Macro ' ' Range("B2:C11").Select Selection.ClearContents End Sub
Chỉnh lại chút xíu nó sẽ như vầy:
PHP:Sub Macro1() Sheets("du lieu nhap").Range("B2:C11").ClearContents End Sub
Undo trong VBA (Application.Undo) chỉ phục vụ trong trường hợp bạn thao tác thủ công mà không sử dụng VBA thì nó sẽ được thực hiện, còn không nó báo lỗi. Còn thủ tục Sub Back của bạn mục đích để làm gì, bạn có thể nói rõ hơn không?e xin lỗi vì chen ngang nhưng anh chị cho e hỏi chút là e tạo xong nút xóa và bây giờ muốn tạo nút undo thì hàm công thức như nào ạ. e có 1 công thức nhưng không biết chèn dữ liệu ạ. E cảm ơn !
Sub Back()
MyVar = [SourceDL]
[TargetDL] = MyVar
End Sub
Vâng ạ, e gửi a file luôn cho dễ hình dung ạ. Xin cảm ơn .Undo trong VBA (Application.Undo) chỉ phục vụ trong trường hợp bạn thao tác thủ công mà không sử dụng VBA thì nó sẽ được thực hiện, còn không nó báo lỗi. Còn thủ tục Sub Back của bạn mục đích để làm gì, bạn có thể nói rõ hơn không?
Tôi xem file xong, xem code, tôi chẳng hiểu gì cả nói chi đến hình dung thế nào. Bạn giải thích cụ thể xem.Vâng ạ, e gửi a file luôn cho dễ hình dung ạ. Xin cảm ơn .
có nghĩa là e cần tạo nút Back " lùi lại" ạ. trước nút back nó được gắn hàm nhưng e không hiểu được cách lấy dữ liệu. hàm cũ nó làTôi xem file xong, xem code, tôi chẳng hiểu gì cả nói chi đến hình dung thế nào. Bạn giải thích cụ thể xem.
Code này tôi cũng không biết để làm gì luôn!
Sub back()
Myvar = [Sheets("Roulet").Range("a50:a1500")]
[targetDL] = Myvar
End Sub
Bạn nói cho rõ nghĩa hơn đi, bạn muốn lùi lại như thế nào? Vùng dữ liệu của sheet nào? Khối ô nào? Myvar để làm gì? targetDL sẽ ở đâu? v.v... Và sau đó nữa là gì? Kết quả mong muốn như thế nào?có nghĩa là e cần tạo nút Back " lùi lại" ạ. trước nút back nó được gắn hàm nhưng e không hiểu được cách lấy dữ liệu. hàm cũ nó là
Sub back()
Myvar = [sourceDL]
[targetDL] = Myvar
End Sub
Xin cảm ơn !
Dạ e muốn lùi lại từng ô một của SheetA cột A2:A1500 sau mỗi lần click nút mũi tên < ạ. Myvar và target là dữ liệu của cột A trong SheetA ạ. Xin cảm ơn !Bạn nói cho rõ nghĩa hơn đi, bạn muốn lùi lại như thế nào? Vùng dữ liệu của sheet nào? Khối ô nào? Myvar để làm gì? targetDL sẽ ở đâu? v.v... Và sau đó nữa là gì? Kết quả mong muốn như thế nào?
Có phải bạn muốn nói Nếu ô đang chọn là A3, khi bấm vào thì nó sẽ chọn ô A2 phải không?Dạ e muốn lùi lại từng ô một của SheetA cột A2:A1500 sau mỗi lần click nút mũi tên < ạ. Myvar và target là dữ liệu của cột A trong SheetA ạ. Xin cảm ơn !
Tiêu đề trong file dễ hiểu a ạ, a bấm nút 1 2 đến ô nào thì bấm nút mũi tên < nó sẽ lùi lại một bước, giống như mình bấm back trong file excel ạ.Có phải bạn muốn nói Nếu ô đang chọn là A3, khi bấm vào thì nó sẽ chọn ô A2 phải không?
Có các trường hợp xảy ra:
- Nếu đang ở ô A2 thì nó đứng lại và thông báo giới hạn hay phải chọn ô A1500?
- Nếu đang chọn là khối ô VD như A4:A10 thì bấm vào nó sẽ chọn thế nào? Chọn ô A3 hay sao?
- Nếu ô đang chọn, không thuộc nhóm ô A2:A1500 thì nó sẽ như thế nào?
Đây nhé, không biết có đúng với ý bạn không.Tiêu đề trong file dễ hiểu a ạ, a bấm nút 1 2 đến ô nào thì bấm nút mũi tên < nó sẽ lùi lại một bước, giống như mình bấm back trong file excel ạ.
Sub back()
Dim e As Long
e = Sheets("A").Range("A1501").End(xlUp).Row
If e > 1 Then
Sheets("A").Range("A" & e).ClearContents
End If
End Sub