해결 M365윈도우10
WorksheetFunction.Filter 에러
노란색부분이 " '13'런타임 오류가 발생하였습니다:형식이 일치하지 않습니다. " 이렇게 에러 나는데 어떻게 작성해야 하나요?
Sub 매크로1()
Set myRange = Worksheets("테이블").Range("A2:H15")
Set fRange = Worksheets("테이블").Range("b2:b15")
For i = 1 To 5
Sheets.Add after:=Sheets(i)
Worksheets("테이블").Select
k = Cells(i, 15).Value
Sheets(i + 1).Name = k
Worksheets("테이블").Range("a1:h1").Copy
Sheets(i + 1).Activate
Cells(1, 1).Select
ActiveSheet.Paste
Cells(2, 1) = WorksheetFunction.Filter(myRange, fRange = k)
Cells(1, 1).Select
Next
Application.CutCopyMode = False
End Sub
Sub 매크로1()
Set myRange = Worksheets("테이블").Range("A2:H15")
Set fRange = Worksheets("테이블").Range("b2:b15")
For i = 1 To 5
Sheets.Add after:=Sheets(i)
Worksheets("테이블").Select
k = Cells(i, 15).Value
Sheets(i + 1).Name = k
Worksheets("테이블").Range("a1:h1").Copy
Sheets(i + 1).Activate
Cells(1, 1).Select
ActiveSheet.Paste
Cells(2, 1) = WorksheetFunction.Filter(myRange, fRange = k)
Cells(1, 1).Select
Next
Application.CutCopyMode = False
End Sub
홍
정
예
당
댓글 4
Cells(2, 1) 이라는 셀 값에 Filter의 결과 Array를 넣으려고 해서 오류가 나는 거 아닐까요?
Cell의 값을 설정하려면, 단일 값으로 넣어야 하지 않을까 싶습니다.
Sub 매크로1()
Dim g
Set myRange = Worksheets("테이블").Range("A2:H15")
Set fRange = Worksheets("테이블").Range("b2:b15")
For i = 1 To 5
Sheets.Add after:=Sheets(i)
Worksheets("테이블").Select
k = Cells(i, 15).Value
Sheets(i + 1).Name = k
Worksheets("테이블").Range("a1:h1").Copy
Sheets(i + 1).Activate
Cells(1, 1).Select
ActiveSheet.Paste
g = WorksheetFunction.Filter(myRange, fRange = k)
Next
Application.CutCopyMode = False
End Sub
그럼 fRange=k 를 Array하나 선언하시고, For,,, Next 문으로 각각의 결과를 True/False로 넣어서 그 Array변수를 넣어야 할 듯 합니다.
영문이지만 여길 참고해 보세요.
https://stackoverflow.com/a/65654875