vba - 检查单元格是否是 Excel 范围的最后一个单元格

标签 vba excel

我正在循环 MyRange范围。我需要找出 CellMyRange 的最后一个单元格.

For Each Cell In MyRange.Cells        
    If Cell = ' What should I write here?
        'Do some stuff
    End If
Next Cell

我试过这个:

If Cell = MyRange.Cells(0, MyRange.Count) Then

但它给出了错误。

我该怎么办?

最佳答案

您的答案很好,但这是一个有趣的问题。这是一种预先弄清楚的方法:

Sub test()
Dim MyRange As Excel.Range
Dim cell As Excel.Range
Dim LastCell As Excel.Range

Set MyRange = Selection
Set LastCell = MyRange.Areas(MyRange.Areas.Count).Cells(MyRange.Areas(MyRange.Areas.Count).Cells.Count)
For Each cell In MyRange
If cell.Address = LastCell.Address Then
    MsgBox cell.Address
    Exit For
End If
Next cell
End Sub

请注意,在我们的两种方法中,如果有多个区域,“最后一个单元格”可能不是最底部或最右侧的单元格。例如选择单元格 J10:J20 然后 E5:E10 并运行上面的。结果将是 E10,因为它是最后选择的。

关于vba - 检查单元格是否是 Excel 范围的最后一个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16454103/

相关文章:

excel - 使用 VBA 从 Word 获取文本到 Excel

excel - 锁定特定工作表中的单元格

vba - 在第 N 列的每个单元格中放置一个公式,该公式在左侧两列中有一个值

excel - 以编程方式将按钮添加到 WorkbookOpen 上的工作表

linux - 捕获一张 Excel 工作表

excel - 在用户定义的函数中使用 .find 方法

string - Instr 函数无法检测到字符串中的单词

arrays - 使用 Excel VBA 检查某个值是否在数组中

python - 在python中将Excel文件与 Pandas 合并

excel - vba-sum 和 group by 不使用 sql-adodb