Xin code tìm đến ô giao của hàng cuối cùng chứa dữ liệu và cột nằm khoảng gữa của vùng cột chứa dữ liệu

Liên hệ QC

motphatlt

Thành viên chính thức
Tham gia
15/8/20
Bài viết
54
Được thích
5
Em xin được nhờ các thầy cô giúp đỡ đoạn code tìm giao nhau của ô:
Ô đó thỏa mãn điều kiện là ô giao nhau của hàng (hàng cuối có chứa dữ liệu tính từ trên xuống) và cột, cột này nằm trong khoảng cột giữa của vùng cột có chứa dữ liệu "áng chừng nằm trong khoảng giữa của vùng cột chứa dữ liệu chứ không nhất thiết là chính xác giữa"
Cụ thể ví dụ như trên hình là ô H21: chạy code tới được luôn ô H21.
Đoạn code này có tác dụng trên một Sheet bất kỳ trong file hiện hành khi chạy code trong sheet hiện hành đó.
Em xin cảm ơn!

vbtr.png
 
Lần chỉnh sửa cuối:
Em xin được nhờ các thầy cô giúp đỡ đoạn code tìm giao nhau của ô:
Ô đó thỏa mãn điều kiện là ô chứa dữ liệu, là giao nhau của cột ( cột cuối cùng tính từ trái sang phải) giao với hàng (hàng cuối cùng tính từ trên xuống).
Cụ thể ví dụ như trên hình là ô N26: chạy code tới được luôn ô N26.
Em xin cảm ơn!
Trường hợp A30 có giá trị là "XYZ" thì kết quả là gì?
 
Trường hợp A30 có giá trị là "XYZ" thì kết quả là gì?
Dạ vâng, sau khi thầy góp ý em đã chỉnh lại yêu cầu ở bài 1, xin được thầy giúp.
Bài đã được tự động gộp:

PHP:
msgbox Sheet1.UsedRange.Address
Em cảm ơn thầy! sau khi thầy befaint góp ý em đã chỉnh lại yêu cầu ở bài #1.
Rất mong được thầy quan tâm và giúp!
 
Bạn có thể dùng code này. Hơi 2 lúa 1 chút

Mã:
Sub adad()
d = Range("d100000").End(xlUp).Row + 1
e = Range("e100000").End(xlUp).Row + 1
f = Range("f100000").End(xlUp).Row + 1
g = Range("g100000").End(xlUp).Row + 1
h = Range("h100000").End(xlUp).Row + 1
i = Range("i100000").End(xlUp).Row + 1
j = Range("j100000").End(xlUp).Row + 1
k = Range("k100000").End(xlUp).Row + 1
l = Range("l100000").End(xlUp).Row + 1
a = Application.Max(d, e, f, g, h, i, j, k, l, 5)
Range("h" & a).Select
End Sub
Cảm ơn bạn!
Mình chạy thì thấy nó luôn nằm ở giao nhau ở ô trong cột H (chưa phải là cột giữa của cột chứa dữ liệu) và chưa nằm trong hàng cuối cùng có dữ liệu.
thao.png
 
Dùng Find với các tham số SearchOrder và SearchDirection phù hợp để xác định các cạnh trái, phải, dưới của vùng chứa dữ liệu sau đó xác định ô cần tìm.
 
Dùng Find với các tham số SearchOrder và SearchDirection phù hợp để xác định các cạnh trái, phải, dưới của vùng chứa dữ liệu sau đó xác định ô cần tìm.
Thầy có thể bớt chút thời gian giúp em với được không ạ?
Em chưa hiểu được và làm như thầy nói, em mới biết excel
Xin cảm ơn thầy.
 
Theo như cái hình ở bài #6 thì bạn muốn kết quả là gì?
Toi không hiểu yêu cầu. Bạn cần cho biết con số mong muốn của bạn, may ra thì tôi đoán được mình có khả năng viết code lấy ra con số ấy chăng.
 
Theo như cái hình ở bài #6 thì bạn muốn kết quả là gì?
Dạ em muốn kết quả nằm ở hàng = hàng cuối cùng có dữ liệu hàng 24
Cột nằm trong vùng cột giữa của vùng cột có dữ liệu = cột L (bao gồm cả cột trống trong vùng )
Ô muốn con trỏ khi chạy code = giao cột L với dòng 24 (ô tô nền xanh)
Mong thầy giúp em với ạ!

muon.png
 
Em xin được nhờ các thầy cô giúp đỡ đoạn code tìm giao nhau của ô:
Ô đó thỏa mãn điều kiện là ô giao nhau của hàng (hàng cuối có chứa dữ liệu tính từ trên xuống) và cột, cột này nằm trong khoảng cột giữa của vùng cột có chứa dữ liệu "áng chừng nằm trong khoảng giữa của vùng cột chứa dữ liệu chứ không nhất thiết là chính xác giữa"
Cụ thể ví dụ như trên hình là ô H21: chạy code tới được luôn ô H21.
Đoạn code này có tác dụng trên một Sheet bất kỳ trong file hiện hành khi chạy code trong sheet hiện hành đó.
Em xin cảm ơn!

View attachment 243414
Thử
dim Rng as range
set rng = Sheet1.UsedRange
rng(rng.rows.count,(rng.columns.count+1)\2).select
 
UsedRange tính cả ô không có dữ liệu nhưng có định dạng và ô đã từng dùng tính từ khi file được lưu.
 
Bạn thử chạy macro này trên trang tính "GPE" có dữ liệu:
PHP:
Sub DongCuoi_CotGiua()
Dim Rng As Range
Dim LastRowCell As Long, LastColCell As Integer

With Sheets("GPE")
    Set Rng = .UsedRange
    LastRowCell = .Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
    MsgBox "Dòng cuôi: " & LastRowCell, , "1"
    LastColCell = .Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
    MsgBox "Côt Cuôi: " & LastColCell, , "2"
    MsgBox "Côt Dâu: " & Rng(1).Column, , "3"
End With
End Sub
 
Bạn thử chạy macro này trên trang tính "GPE" có dữ liệu:
PHP:
Sub DongCuoi_CotGiua()
Dim Rng As Range
Dim LastRowCell As Long, LastColCell As Integer

With Sheets("GPE")
    Set Rng = .UsedRange
    LastRowCell = .Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
    MsgBox "Dòng cuôi: " & LastRowCell, , "1"
    LastColCell = .Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
    MsgBox "Côt Cuôi: " & LastColCell, , "2"
    MsgBox "Côt Dâu: " & Rng(1).Column, , "3"
End With
End Sub
Em cảm ơn thầy.
Em chạy code nó cứ xoay xoay rồi hiện ra mấy bảng thông báo ạ!
thầy sửa giúp em đẻ có tác dụng trên sheet bất kỳ và đến được luôn ô mong muốn mà không cần hiện lên thông báo không ạ?
 
Thông báo thứ nhất là dòng cuối;
Thông báo thứ 2 là cột cuối
Thông báo thứ 3 là cột đầu (Cần thẩm tra lại)

Vậy ô thuộc dòng cuối của cột giữa sẽ phải làm phép tính để tìm cột giữa
1 khi ta có dòng cuối & cột 'giữa' rồi thì xác định ô đó theo tọa độ dòng & cột thôi.

Ví dụ cột cuối là 12 & cột đầu là 3 thì cột giữa sẽ là (? tự tính d8i bạn)
 
Web KT
Back
Top Bottom