在VBA

2015-05-14 54 views
0

從變種刪除元素我有具有源列表的變種在VBA

Dim source as variant 
source = Range("A4:A" & rowcount) 

有時rowcount也是4所以在這種情況下,我重新分配源

source = Range("A4:A5") 

現在我想要刪除最後一行source(2)/source(2,1)

如何刪除它?

我試圖Erase source它清除一切

我處理源中的數據並填充一些字典項 我不得不在許多地方的變化,如果源不是一個數組,因爲我已經在很多用於每個地方

我怎樣才能讓第一個元素單獨或刪除最後一個元素?

+1

'source'應被聲明爲'Range',除非...什麼是你試着去實現?爲什麼要刪除最後一行?請改善你的問題。 –

+0

我必須在很多地方做出改變,如果我改變源的類型 所以我想要一個快速修復,這將刪除最後一個元素本身 –

+1

這是如何與[此線程](http:// stackoverflow的.com /問題/ 30231842 /的for-each-失敗- - 有-IS-僅酮小區選擇時)? – Jeeped

回答

2

您不能使用ReDim Preserve,因爲即使只有一個單元格,您使用範圍設置的變體也將是2D。

使用.Value.Value2得到適當的陣列和緩衝區變量刪除您的信息傳送回源:

Dim source as variant, A() 
Redim A(0) 

If rowcount<>4 Then 
    source = Range("A4:A" & rowcount).Value 
Else 
    source = Range("A4:A5").Value 
    A(0)=source(1,1) 
    Redim source(1 To 1, 1 To 1) 
    source(1,1)=A(0) 
End if 
+0

我想要它作爲來源(1,1)= A(0)是可能的 –

+0

是的,看到編輯! ;) – R3uK