我一直在线查看/这里,我能找到的所有内容仅与完整的工作表有关,而不是与该工作表的一部分有关。
我有一个代码,它将采用命名范围" ARange",并搜索任何出现的" AValue" 如果" AValue"不在范围内,那么它将扩大范围以允许空间插入" AValue"
我遇到的问题是,在我扩展范围之后,我不确定如何插入" AValue"进入范围的最后一个单元格。这可以通过ARange中的另一个For Each Cell来完成,我将把它作为最后的手段。
请注意。 ARange只是一个示例名称。我希望能够在几个不同的范围内做到这一点。全1列宽。一些将从第1行开始,第2行,第20行等等。
有没有简单的方法来表达以下内容以便它起作用?
LastCell("ARange").Value = TextBox1.Value
谢谢你们!
答案 0 :(得分:2)
如果您的命名范围已使用引用:定义,使用类似的公式,
=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 定义为参考:(公式►定义的名称►名称管理员),
=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
答案 1 :(得分:1)
鉴于 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