我有以下列表:VBA:過濾列表,並存儲結果作爲命名範圍
我想打一個VBA代碼過濾上存儲他們的工作不同的名稱,並存儲導致一個帶有商店名稱的命名範圍 - 範圍是在該商店中工作的列表中的名稱。
例如,命名的範圍是倫敦 - 包含單元格B2和B7,依此類推。
編輯:
我知道這是錯的,但我解決不了這個。 VBA並不是我想要的那一刻......我首先創建了一個新的命名範圍列,然後繼續。
Sub NamedRange()
Dim arr() As Variant
arr = Sheet1.Range("D2:D4").Value
Dim i As Integer
Dim j As Integer
Dim Name As String
Dim k1 As Range, k2 As Range
Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
i = 0
Do While i < 4
Name = arr(i)
For j = 1 To Lastrow
k1 = Match(arr(i), Cells(i, 1).Value, 0)
k2 = Union(k1, k2)
Next j
Range(k2).Select
Application.Goto Reference:=arr(i)
Loop
End Sub
EDIT2:花了兩個小時試圖瞭解AdvancedFilter功能。使用x1FilterCopy選項使它工作,但是我的整個Excel表格將會這樣混亂。有沒有什麼方法可以將過濾後的範圍過濾並存儲在一個變量中。上帝,VBA,你爲什麼這樣做?
你嘗試過什麼? –
@Scott Craner:當然可以。但我真的不知道如何攻擊這個。我想我需要弄清楚如何將每個部門存儲在某個數組中(我不太確定),然後爲數組中的每個對象創建一個for循環,以便以某種方式從第一列中過濾所需的單元格並存儲我在一個命名的範圍內過濾。我對這個VBA完全陌生,不能直截了當地思考。 – Erosennin
這正是如何做到這一點。因此,請分別將每個部分分別谷歌,嘗試將它們放在一起然後在遇到特定問題時回到代碼中。注意:命名範圍將一直運行,直到有人對數據進行排序,那麼您將需要重做範圍名稱。所以您還需要搜索工作表更改事件。 –