2013-01-18 23 views
0

我有一個工作表,其中有很多行。我需要獲取指定選定行範圍內最後一個非空列的最大列索引。VBA代碼查找所選行中最後使用的列索引的最大值

例如,工作表包含200行,每行包含26列,但目前只有行20到30被選中。我需要找到這些行中最後使用的最大列索引。

請注意,行中非空單元格之間可能存在空單元格。我只需要考慮最後一個非空單元。

我該如何做到這一點?

+0

看到這個鏈接.. http://stackoverflow.com/questions/11883256/copy-last-column-with-data-on-specified-row-to-the-next-blank-column而不是'ws.Cells ',你可以指定相關的行作爲你的範圍。 –

回答

0

那麼你可以試試這個: 假設你想要得到的範圍"A2:X50"內的最後一列中Sheet1

Dim LastColumn as Long  
lastCol = Sheets(1).Range("A2:X50").Columns.Count 
+0

這會給你列的總數:)而不是什麼OP要... –

+0

@SiddharthRout腦凍結:​​$我仍然不明白它..所有我知道這給列之間指定的範圍'A2: C10'是3,然後'B2:C10'是2 ..我看到你的鏈接,我想給出相同的結果,但我想我誤導了這裏*指定選定行範圍內的最後一個非空列的最大列索引* :) – bonCodigo

+0

OP已經知道有26列:)他想要的是找到20-30行中的最後一列有數據。請注意,您的示例中的Col X並不一定需要數據:) –

0

試試這個,lngMaxColumIndex是最後一列的索引和lngMaxRowIndex是最後一行指數

子pFindLastCells()

Dim rngRange    As Range 
Dim wksWorksheet   As Worksheet 
Dim lngMaxColumIndex  As Long 
Dim lngMaxRowIndex   As Long 

'Set 'Sheet1' worksheet 
Set wksWorksheet = Worksheets("Sheet1") 

With wksWorksheet 
    'Check for last non-empty cell 
    Set rngRange = .Cells.Find("*", .Cells(1, 1), xlFormulas, xlWhole, xlByRows, xlPrevious) 
End With 

If Not rngRange Is Nothing Then 
    'if found then assign last non-empty cell row and colum index to the variable 
    lngMaxColumIndex = rngRange.Column 
    lngMaxRowIndex = rngRange.Row 
Else 
    'if not found gives message 
    MsgBox "No Data in " & wksWorksheet.Name, vbCritical + vbInformation, "Error" 
End If 

Set rngRange = Nothing 

結束子

相關問題