Macro tìm số hàng trống cực đại giữa cột số liệu giống nhau

  • Thread starter Thread starter SA_DQ
  • Ngày gửi Ngày gửi
Liên hệ QC

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia
8/6/06
Bài viết
14,576
Được thích
22,897
Nghề nghiệp
U80
Ví dụ:
A|B
|
|
X
|
|
|
X|
|
|
|
|
X|
|
|
|
|
|
|
X|
|
|
|
XX|
|
|
|
|
X|
|

PHP:
Option Explicit
Sub MaxRow()
 Dim Rng As Range, sRng As Range
 Dim MyAdd As String, MAdd As String
 Dim Zz1 As Long, Zz2 As Long, jJ As Long, ZMax As Long
 
 Set Rng = Range("A1:A" & [a65500].End(xlUp).Row)
 Set sRng = Rng.Find("X", , xlFormulas, xlWhole)
 If Not sRng Is Nothing Then
   MyAdd = sRng.Address
   Do
      jJ = jJ + 1
      If jJ Mod 2 = 1 Then Zz1 = sRng.Row Else Zz2 = sRng.Row
      If Abs(Zz2 - Zz1) > ZMax Then
         ZMax = Abs(Zz2 - Zz1):                 MAdd = sRng.Address & Str(Abs(Zz2 - Zz1))
      End If
      Set sRng = Rng.FindNext(sRng)
   Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
 End If
 MsgBox MAdd
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Vậy các bạn hãy cho biết đáp án với ví dụ trên sẽ là bao nhiêu dòng?!

--=0 :-= )(&&@@@$@!^% !$@!! {}{}{
 
Lần chỉnh sửa cuối:
Anh ơi! Anh nói rằng
Macro tìm số hàng trống cực đại giữa cột số liệu giống nhau
Thế sao trong code lại có vụ Find("X", , xlFormulas, xlWhole)
Nếu trong cột dử liệu không có X nào thì tìm cái gì
Nếu đúng như anh nói là TÌM SỐ HÀNG TRỐNG CỰC ĐẠI thì em dùng SpecialCells(4)
 
Lần chỉnh sửa cuối:
Khà, . . khà, . . từ đây: http://giaiphapexcel.com/forum/showthread.php?t=23302

Có lẻ phải thêm vài từ trong tiêu đề nữa, ví dụ:
"Macro tìm số hàng trống cực đại giữa các ô dữ liệu giống nhau trong một cột"


--=0 --=0

)(&&@@ )(&&@@ @$@!^% @$@!^%

!$@!! !$@!!

phương thức FIND() cũng giúp được mà!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Có lẻ phải thêm vài từ trong tiêu đề nữa, ví dụ:
"Macro tìm số hàng trống cực đại giữa các ô dữ liệu giống nhau trong một cột"
phương thức FIND() cũng giúp được mà!
Vâng! Em đã hiểu!
Vậy tìm khoảng trống giữa 2 chử x, nhưng nếu giữa các chử x này còn có các ký tự khác (chẳng hạn chử NDU) thì sao ta?
Anh xem kết quả này:

attachment.php


Xem ra không mấy thuyết phục ---> Lý ra khoảng trống lớn nhất phải là từ A17 đến A24 (theo ý em)
Đàng nào từ A8 đến A17 vẫn bị chặn lại bởi ký tự M, vậy nó đâu còn là 1 khoảng trống
 

File đính kèm

  • untitled.JPG
    untitled.JPG
    20.3 KB · Đọc: 125
Để tổng quát tôi nghĩ nên viết thành hàm, tham số bao gồm 1 vùng, 1 tham số tùy chọn là giá trị ô, nếu đưa vào giá trị thì xem đó là giá trị phân cách, không đưa vào giá trị thì đơn thuần là tìm khoảng trắng lớn nhất thôi.
 
K/g các bạn!
Nếu mình chỉ muốn tìm vị trí của x thứ hai được tìm ra từ vị trí x đầu trong cùng một cột thôi thì đoạn code sẽ viết gọn lại ntn vậy? Cám ơn các bạn chỉ dẫn
 
Web KT

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

Back
Top Bottom