2
我想建立一個循環,選擇一個數組中的不同名稱,並在高級過濾器中使用它們,將過濾後的數據複製到不同的工作表。調試說:過濾器的問題(我使用錄製工具)。先進的過濾器循環
最後的想法是將過濾後的數據複製到Outlook電子郵件中,儘管如此,還是有點遠。
任何想法爲什麼它不工作?
Private Sub loopfilter()
Dim VersandRange As Range
Dim rng As Range
Dim Name As String
Set VersandRange = Range("J2", Cells(Rows.Count, "j").End(xlUp))
For Each rng In VersandRange
Worksheets("Filtro").Range("AK2") = rng.Value
Application.CutCopyMode = False
Worksheets("Alle gemahnten Posten (2)").Range("A1").CurrentRegion.AdvancedFilter Action _
:=xlFilterCopy, CriteriaRange:=Range("A1:AK2"), CopyToRange:=Range("A5"), _
Unique:=False
Range("a5").CurrentRegion.Copy
Worksheets.Add.Name = rng.Value
ActiveSheet.Range("A1").Paste
Next
End Sub
更新1:
非常感謝您的提示
從來就一直在努力使今天早上上班,適應引用。到目前爲止,它看起來像這樣:
Private Sub loopfilter()
Dim thisWB As Workbook
Dim filterws As Worksheet
Dim howto As Worksheet
Dim advfilter As Range
Dim Postenws As Worksheet
Dim VersandRange As Range
Dim rng As Range
Dim Name As String
Set thisWB = ThisWorkbook
Set filterws = thisWB.Sheets("Filtro")
Set howto = thisWB.Sheets("How to")
Set advfilter = filterws.Range("A1:AK2")
Set Postenws = thisWB.Sheets("Alle gemahnten Posten (2)")
Set VersandRange = howto.Range("J2", Cells(Rows.Count, "j").End(xlUp))
Dim newWS As Worksheet
For Each rng In VersandRange
filterws.Range("AK2") = rng.Value
Application.CutCopyMode = False
Postenws.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=advfilter, _
CopyToRange:=filterws.Range("A5"), _
Unique:=False
filterws.Range("a5").CurrentRegion.Copy
Set newWS = thisWB.Sheets.Add
newWS.Name = rng.Value
newWS.Range("A1").Paste
Next
我正在for循環內的最後2行遇到麻煩。
從來就試了一下作爲
Name = rng.value
newWS.Name = Name
,但仍然沒有工作。有任何想法嗎?
您的標準和copytorange沒有紙基準,這可能是一個問題。你遇到了什麼錯誤? – SJR