如何使用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

回到顶部