写入命名范围内的最后一个单元格

Write to last cell in named range

我一直在查看 online/here,我能找到的所有内容都只与完整的 sheet 有关,而不是作为 sheet 的一部分的范围。

我有一个代码,它将采用命名范围 "ARange",并搜索任何出现的 "AValue" 如果 "AValue" 不在范围内,那么它将扩展范围以允许空间插入 "AValue"

我 运行 遇到的问题是,在扩展范围后,我不确定如何将 "AValue" 插入到范围的最后一个单元格中。这可以通过 ARange 中的另一个 For Each Cell 来完成,我将把它作为最后的手段。

请注意。 ARange 只是一个示例名称。我希望能够在几个不同的范围内做到这一点。所有 1 列宽。有的从第 1 行开始,有的从第 2 行开始,有的从第 20 行开始,等等

有什么简单的方法可以表达以下内容吗?

LastCell("ARange").Value = TextBox1.Value

谢谢大家!

考虑到 A​​Range 只有一列宽:

Sub xTendIt()
    Dim ARange As Range, AValue As String
    '
    'this is an example
    '

    AValue = "X"
    Set ARange = Range("B9:B23")
    '
    'this is a general extender
    '
    Set ARange = ARange.Resize(ARange.Rows.Count + 1, 1)
    ARange(ARange.Count) = AValue
End Sub

或使用TextBox1.Value

如果您的 命名范围 已定义为 指的是: 使用的公式类似于

=OFFSET(Sheet1!$A, 0, 0, COUNTA(Sheet1!$A:$A, 1)

... 或

的非易失性等价物
=Sheet1!$A:INDEX(Sheet1!$A:$A, MATCH("zzz", Sheet1!$A:$A))       ◄ for text
=Sheet1!$A:INDEX(Sheet1!$A:$A, MATCH(1e99, Sheet1!$A:$A))        ◄ for numbers

...那么您只需在范围下方的第一个空白单元格中设置值,一旦设置了值,范围的 *指:将调整以包含它。

With Range("my_Named_Range")
    .Cells(.Cells.Count).Offset(1) = "abc"
End With

设置值后,my_Named_Range 会立即扩展以包含它。

编辑:

With my_Named_Range_2 defined with a Refers to: (Formulas ► Defined Names ► Name Manager) of,

=Sheet1!$A:INDEX(Sheet1!:, , MATCH("zzz", Sheet1!:))

...上面提供的代码片段应该修改为,

With Range("my_Named_Range_2")
    .Cells(.Cells.Count).Offset(0, 1) = "abc"
End With