Sub advancedFilter()
'jdpps
Sheets("filter").Range("a7:z10000").ClearFormats
db시트명 = Range("filter!b5").Value
'db시트명 입력 안했으면 메세지(validation)
If db시트명 = "" Then MsgBox ("fliter!b5 에 db시트명을 입력해주세요")
'데이터 범위 구하기
열개수 = Sheets(db시트명).Range("a1", Sheets(db시트명).Range("a1").End(xlToRight)).Columns.Count
행개수 = Sheets(db시트명).Range("a1", Sheets(db시트명).Range("a1").End(xlDown)).Rows.Count
열주소 = Chr(64 + 열개수)
데이터범위 = "a1:" & 열주소 & 행개수
'조건범위 구하기
조건행개수 = 조건행개수구하기(3, 열개수)
Sheets(db시트명).Range(데이터범위).advancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("filter!A1:" & 열주소 & 1 + 조건행개수), CopyToRange:=Range("filter!A6:" & 열주소 & "6"), Unique:=False
End Sub
Function 조건행개수구하기(p_최대조건줄수, p_조건열개수)
조건범위 = 0
열의데이터개수 = 0
For 행 = 2 To p_최대조건줄수
For 열 = 1 To p_조건열개수
'Sheets("filter").Cells(행, 열).Select
If Sheets("filter").Cells(행, 열).Value <> "" Then
열의데이터개수 = 열의데이터개수 + 1
End If
Next
If 열의데이터개수 > 0 Then
조건범위 = 조건범위 + 1
End If
열의데이터개수 = 0
Next
조건행개수구하기 = 조건범위
End Function
Last active
August 27, 2017 06:44
-
-
Save Kyeongrok/b932e1ec90c8d264d5931a82ac2f33ca to your computer and use it in GitHub Desktop.
excel vba advanced filter
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment