我有一個工作表,其中有很多行。我需要獲取指定選定行範圍內最後一個非空列的最大列索引。VBA代碼查找所選行中最後使用的列索引的最大值
例如,工作表包含200行,每行包含26列,但目前只有行20到30被選中。我需要找到這些行中最後使用的最大列索引。
請注意,行中非空單元格之間可能存在空單元格。我只需要考慮最後一個非空單元。
我該如何做到這一點?
我有一個工作表,其中有很多行。我需要獲取指定選定行範圍內最後一個非空列的最大列索引。VBA代碼查找所選行中最後使用的列索引的最大值
例如,工作表包含200行,每行包含26列,但目前只有行20到30被選中。我需要找到這些行中最後使用的最大列索引。
請注意,行中非空單元格之間可能存在空單元格。我只需要考慮最後一個非空單元。
我該如何做到這一點?
那麼你可以試試這個: 假設你想要得到的範圍"A2:X50"
內的最後一列中Sheet1
Dim LastColumn as Long
lastCol = Sheets(1).Range("A2:X50").Columns.Count
這會給你列的總數:)而不是什麼OP要... –
@SiddharthRout腦凍結:$我仍然不明白它..所有我知道這給列之間指定的範圍'A2: C10'是3,然後'B2:C10'是2 ..我看到你的鏈接,我想給出相同的結果,但我想我誤導了這裏*指定選定行範圍內的最後一個非空列的最大列索引* :) – bonCodigo
OP已經知道有26列:)他想要的是找到20-30行中的最後一列有數據。請注意,您的示例中的Col X並不一定需要數據:) –
試試這個,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
結束子
看到這個鏈接.. http://stackoverflow.com/questions/11883256/copy-last-column-with-data-on-specified-row-to-the-next-blank-column而不是'ws.Cells ',你可以指定相關的行作爲你的範圍。 –