2015-01-13 24 views
1

我一直在網上看一下/這裏,我能找到的所有內容都只涉及整個表格,而不是作爲該表格的一部分。寫入已命名區域中的最後一個單元格

我有一個代碼,將採取命名範圍「ARange」,並搜索任何發生的「AValue」 如果「AValue」不在範圍內,那麼它將擴大範圍以允許空間插入「AValue 「

我遇到的問題是在擴展範圍之後,我不確定如何在範圍的最後一個單元格中插入」AValue「。這可以通過ARange中的另一個For Each Cell完成,我將轉而採用這種方法作爲最後的手段。

只是一個說明。 ARange只是一個樣本名稱。我想能夠做到這一點與幾個不同的範圍。所有1列寬。有些將從第1行,第2行,第20行等開始。

是否有任何簡單的方式來表達以下所以它的作用?

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

謝謝你們!

回答

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 
+0

謝謝@Jeep編看起來輝煌!我不太明白提到定義選項,但我會看看。 有沒有辦法將偏移量應用到水平範圍? IE:A1:G1 - 將H1的值設置爲「ABC」 – User123456798

+0

@ User123456798 - 我爲我的答案添加了一個水平方向命名範圍的片段。 – Jeeped

1

鑑於人氣指數只有一個列寬:

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

相關問題