Chọn ô theo điều kiện (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

tiendat210

Thành viên mới
Tham gia
3/5/11
Bài viết
25
Được thích
5
Xin mọi người giúp em cod VBA chọn ô theo điều kiện là: Cell được active có dòng là dòng đang được active, cột là cột chứa dữ liệu ngày tháng cần tìm kiếm. Em nói có thể chưa rõ ý lắm nên có làm file kèm theo. Mong mn giúp đỡ với ạ
 

File đính kèm

Xin mọi người giúp em cod VBA chọn ô theo điều kiện là: Cell được active có dòng là dòng đang được active, cột là cột chứa dữ liệu ngày tháng cần tìm kiếm. Em nói có thể chưa rõ ý lắm nên có làm file kèm theo. Mong mn giúp đỡ với ạ
Tự nghiên cứu bẫy lỗi nếu không tìm thấy nhé
Mã:
With ActiveSheet
    .Cells(ActiveCell.Row, .Rows(2).Find(.Cells(5, "B"), , xlValues).Column).Select
End With
 
Lần chỉnh sửa cuối:
Upvote 0
Làm thử:
[
PHP:
Sub Chon()
On Error GoTo loi
Cells(ActiveCell.Row, Evaluate("=MATCH(B5,2:2,0)")).Select
Exit Sub
loi:
MsgBox "Khong tim thay!"
End Sub
 
Upvote 0
Tự nghiên cứu bẫy lỗi nếu không tìm thấy nhé
Mã:
With ActiveSheet
    .Cells(ActiveCell.Row, .Rows(2).Find(.Cells(5, "B"), , xlValues).Column).Select
End With
Dạ, cám ơn bác. Cod của bác em làm ra file khác thì ok. Mà đưa vào file thực thi thì không được. Nó liên quan gì đó đến format ngày tháng. Mà em làm đủ kiểu format cho giống rồi mà nó không được. Em đang mò tiếp. Lên để cám ơn bác cái đã. Nếu bác có cách nào khác thì chỉ em với nha
Bài đã được tự động gộp:

Làm thử:
[
PHP:
Sub Chon()
On Error GoTo loi
Cells(ActiveCell.Row, Evaluate("=MATCH(B5,2:2,0)")).Select
Exit Sub
loi:
MsgBox "Khong tim thay!"
End Sub
Cám ơn bác.Sao em làm mà nó toàn báo là không tìm thấy nhỉ? Em copy và paste ngày vào ô B5 mà nó cũng không thấy ạ.

Em có gắn file thực thi của em, phiền các bác xem giúp với ạ
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
PHP:
Sub chongay()
On Error GoTo loi
Cells(ActiveCell.Row, Evaluate("=MATCH('PHAN CHIA'!I4,5:5,0)")).Select
Exit Sub
loi:
MsgBox "Khong tim thay!"
End Sub
Mà bạn làm cái selection_change even làm chi vậy để mỗi lần chọn ô là 1 lần refresh screen?
 
Upvote 0
PHP:
Sub chongay()
On Error GoTo loi
Cells(ActiveCell.Row, Evaluate("=MATCH('PHAN CHIA'!I4,5:5,0)")).Select
Exit Sub
loi:
MsgBox "Khong tim thay!"
End Sub
Mà bạn làm cái selection_change even làm chi vậy để mỗi lần chọn ô là 1 lần refresh screen?
Cám ơn bác. Em làm được rồi ah. Bác làm đúng ý em luôn.
Em muốn nó select ô đó trước cho em để em đỡ mất công đi tìm, vì bảng nó nhiều hàng cột quá. Một lần nữa cám ơn ạ
 
Upvote 0
Dạ, cám ơn bác. Cod của bác em làm ra file khác thì ok. Mà đưa vào file thực thi thì không được. Nó liên quan gì đó đến format ngày tháng. Mà em làm đủ kiểu format cho giống rồi mà nó không được. Em đang mò tiếp. Lên để cám ơn bác cái đã. Nếu bác có cách nào khác thì chỉ em với nha
Bạn tham khảo thêm cách xài FIND() lúc rỗi, như sau:

Phương thức FIND() số liệu ngày-tháng-năm chỉ có thể áp dụng với trị tìm & vùng tìm được định dưới dạng 'MM/DD/yyyy'

Ví dụ ta có bảng số liệu như sau:

STTNgàyNhậpXuấtTồn
20​
425040Kết quả
1​
18/02/2022​
12326/02/2022
2​
20/02/2022​
123
5/3/2022​
3​
21/02/2022​
321
12/3/2022​
4​
22/02/2022​
12319/03/2022
5​
23/02/2022​
32126/03/2022
6​
24/02/2022​
231
2/4/2022​
7​
25/02/2022​
123
9/4/2022​
8​
26/02/2022​
32116/04/2022
9​
27/02/2022​
23116/04/2022
10​
28/02/2022​
123
11​
01/03/2022​
321
12​
02/03/2022​
231
13​
12/03/2022​
123
14​
13/03/2022​
321
15​
14/03/2022​
231
16​
06/03/2022​
123
17​
07/03/2022​
321
18​
08/03/2022​
231
19​
09/03/2022​
123
20​
10/03/2022​
321
21​
11/03/2022​
231
22​
03/03/2022​
123
23​
04/03/2022​
321
24​
05/03/2022​
231
25​
15/03/2022​
321
26​
16/04/2022​
231
27​
17/03/2022​
231
. . . . . . . .

Để có được kết quả liệt kê tất cả các ngày thứ 7 có nhập hay xuất hàng ta chạy macro này:

PHP:
Sub TimVaLietKeThuBay()
 Dim Rng As Range, sRng As Range, WF As Object
 Dim MyAdd As String
 Dim J As Long, Rws As Long, fDat As Date, lDat As Date, Dat As Date, W As Integer
 
 Set WF = Application.WorksheetFunction
 Rws = [B2].CurrentRegion.Rows.Count
 ReDim Arr(1 To Rws, 1 To 1)
 Set Rng = [B3].Resize(Rws)
 Rng.NumberFormat = "MM/DD/yyyy"
 fDat = WF.Min(Rng):                lDat = WF.Max(Rng)
 For J = 0 To 7
    Dat = J + fDat
    If Weekday(Dat) = 7 Then Exit For
 Next J
 For J = 0 To (lDat - fDat) Step 7
    Set sRng = Rng.Find(Format(J + Dat, "MM/dd/yyyy"), , xlValues, xlWhole)
    If Not sRng Is Nothing Then
        MyAdd = sRng.Address
        Do
            W = W + 1:          Arr(W, 1) = Format(sRng.Value, "DD/MM/yyyy")
            Set sRng = Rng.FindNext(sRng)
        Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
    End If
 Next J
 If W Then
    [H3].Resize(W).Value = Arr()
 End If
 Rng.NumberFormat = "dd/mm/yyyy"
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom