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

我一直在网上看/在这里,我能find的所有东西只涉及整张纸,而不是作为该表的一部分。

我有一个代码,将采取命名范围“ARange”,并search任何“AValue”发生如果“AValue”不在范围内,则将扩大范围,以允许空间插入“AValue”

我遇到的问题是,我扩大范围后,我不知道如何将“AValue”插入范围的最后一个单元格。 这可以用ARange中的另一个For Each Cell完成,我将把它作为最后的手段。

只是一个说明。 ARange只是一个样本名称。 我想能够做到这一点与几个不同的范围。 全部1列宽。 有些将从第1行,第2行,第20行开始

有什么简单的方法来expression以下所以它的作品?

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

多谢你们!

如果你的命名范围已经被定义为指的是:使用一个像这样的公式,

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

…或者是非挥发性等价物,

 =Sheet1!$A$1:INDEX(Sheet1!$A:$A, MATCH("zzz", Sheet1!$A:$A)) ◄ for text =Sheet1!$A$1: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就会扩展以包含它。

编辑:

my_Named_Range_2一起定义为:(公式►定义名称►名称pipe理器),

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

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

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

鉴于ARange只有一列的事实:

 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