如何使用VBA从特定的Excel单元格迭代到此列中具有值的最新行?
我是绝对新的Excel和宏VBA我有以下问题。如何使用VBA从特定的Excel单元格迭代到此列中具有值的最新行?
我写了这个代码打印从3TH行开始到第5行的ķ列单元格的内容:
Dim outQuantityRange As Range Set outQuantityRange = Range("K3:K5")
For Each currentOutQuantity In outQuantityRange.Cells
MsgBox (currentOutQuantity)
它工作正常。我的问题是,我想要将此代码更改为从第3行开始到最后一个插入的值的单元格内容存储到K列。例如,如果最后一个值输入到K100单元中,则它必须打印以下内容:K3,K4,K5,......,K100。
我不想指定K100但它必须停止到具有值到K列的最后一行。
我该如何实现这种行为? 接下来
回答:
如果有K3和最后一排之间没有间隙,那么这将做的工作:
Dim rng As Range Set rng = Range("K3", Range("K3").End(xlDown))
回答:
我给了两种方法来找到最后一个单元格 - 使用LastCell
函数将返回这可能不是在列K.
我已经展示了第二种方式只是找到列K中的最后一个单元格。
然后通过给出由逗号分隔的第一个和最后一个单元格引用来设置范围。
Sub AllValues() Dim outQuantityRange As Range
Dim currentOutQuantity As Range
Dim rLastCell As Range
With ThisWorkbook
'Find last cell on sheet containing data.
'Set rLastCell = LastCell(.Worksheets("MySheetName"))
With .Worksheets("MySheetName")
'Find last cell in column K containing data.
Set rLastCell = .Cells(.Rows.Count, 11).End(xlUp)
Set outQuantityRange = .Range("K3", rLastCell)
End With
End With
For Each currentOutQuantity In outQuantityRange
MsgBox currentOutQuantity, vbOKOnly + vbInformation
Next currentOutQuantity
End Sub
Public Function LastCell(wrkSht As Worksheet) As Range
Dim lLastCol As Long, lLastRow As Long
On Error Resume Next
With wrkSht
lLastCol = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
lLastRow = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
If lLastCol = 0 Then lLastCol = 1
If lLastRow = 0 Then lLastRow = 1
Set LastCell = wrkSht.Cells(lLastRow, lLastCol)
End With
On Error GoTo 0
End Function
回答:
如果K列值是常量,则:
Sub qwerty() Dim outQuantityRange As Range, zell As Range
Set outQuantityRange = Range("K3:K" & Rows.Count).SpecialCells(2)
For Each zell In outQuantityRange.Cells
MsgBox zell.Value
Next zell
End Sub
以上是 如何使用VBA从特定的Excel单元格迭代到此列中具有值的最新行? 的全部内容, 来源链接: utcz.com/qa/266519.html