어떻게 다차원 배열을 필터링 할 수 있습니까?Excel VBA의 필터 배열
내 코드도 일을하지 않으며 깔끔한 보인다 :
Option Explicit
Sub CalcE()
Dim TotalRows As Long
Dim myArray, myArray2 As Variant
Dim i, a As Integer
채우기 배열 myArray2에
TotalRows = Sheets("Data").Rows(Rows.Count).End(xlUp).Row
myArray = Sheets("Data").Range("A5:F" & TotalRows)
MsgBox "Array populated with " & UBound(myArray) & "entries."
필터에서 myArray 항목 만 열 1, 4, 6
a = 0
For i = 0 To UBound(myArray)
If myArray(i, 1) > 1 Then
myArray2(a, 1) = myArray(i, 1)
myArray2(a, 2) = myArray(i, 4)
myArray2(a, 3) = myArray(i, 6)
a = a + 1
End If
Next i
MsgBox "Array populated now with " & UBound(myArray2) & "entries."
End Sub
저는 인터넷 검색이 매우 유연하지 않은 것 같아서 잘 작동하지 않는 것 같았습니다. 사람들은 대개 VBA 배열을 포기하고 대신 AutoFilter 메서드를 사용합니다. 나는 정말로 좋은 방법이 아닌지에 관해 깨닫는다. 가지고있는 것은 매우 산뜻 할 것이다! 모두 당신이 필요 myArray2
에 열 1, 4, 6을 저장하는 경우
감사합니다. 하지만 어떻게 필터링 할 수 있습니까? 예를 들어, 1 열에서 1보다 작은 값을 가진 모든 항목을 제거하려고합니다. – Bendaua
이 경우 응답에 표시된대로 코드를 조정할 수 있습니다. 편집 된 답변을 참조하십시오. – sktneer
이것은 내 문제를 해결하고 루프 내 ReDim을 피할 수 있습니다. 다시 한번 감사드립니다. – Bendaua