返回列表 上一主題 發帖

[發問] 快速找出範圍內最大列數

[發問] 快速找出範圍內最大列數

各位好
我利用下列的代碼
  1. Dim N11, N2, N3, N4, N5, MaxRow As Integer
  2.             N11 = Cells(Rows.Count, 2).End(xlUp).Row 'B欄的最後一資料格的列數
  3.             N2 = Cells(Rows.Count, 3).End(xlUp).Row 'C欄的最後一資料格的列數
  4.             N3 = Cells(Rows.Count, 4).End(xlUp).Row
  5.             N4 =Cells(Rows.Count, 5).End(xlUp).Row
  6.             N5 = Cells(Rows.Count, 6).End(xlUp).Row
  7.             
  8.             MaxRow1 = Application.WorksheetFunction.Max(N1, N2, N3, N4, N5) '求出最上述範圍中最大數
複製代碼
找出B至F欄的範圍中的最大列數
想請問各位有沒有其他更快的方式,或是更好的方式,可以達到於特定範圍內找出最大列數
謝謝

謝謝各位的分享!!

TOP

回復 1# ciboybj
用搜尋快一些
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Range
  4.     With Range("B2:E15")
  5.         Set Rng = .Find(What:="*", After:=.Cells(1), SearchDirection:=xlPrevious)
  6.         'SearchDirection:=xlPrevious 搜尋方向:往後
  7.     End With
  8.     If Not Rng Is Nothing Then MsgBox Rng.Row
  9. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 1# ciboybj
  1. Function GetLastRow(rng As Range) As Long
  2.   Dim rngFind As Range
  3.   
  4.   Set rngFind = rng.Find(what:="*", Searchorder:=xlByRows, SearchDirection:=xlPrevious)
  5.   If Not rngFind Is Nothing Then
  6.     GetLastRow = rngFind.Row
  7.   Else
  8.     Err.Raise vbObjectError + 1025, "GetLastRow()", "範圍內找不到任何資料"
  9.   End If
  10. End Function
複製代碼
  1. Sub Test()
  2.   MsgBox GetLastRow(ActiveSheet.[B:G])
  3. End Sub
複製代碼

TOP

如果是整頁,我習慣用 Usedrange
MaxRow1 = ActiveSheet.UsedRange.SpecialCells(11).Row
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

回復 1# ciboybj

假設所有資料都是與B欄中有資料的最後一列相連在一起的:

MaxRow1 = Cells(Cells(Rows.Count, 2).End(xlUp).Row, 2).CurrentRegion.Rows.Count

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題