If rngAutoFilter.SpecialCells(xlCellTypeVisible).Cells.Count = 6 Then
엑셀대단해님이 코드에 적용하신 것은..
헤더를 일단 제외한 다음에 저 코드를 적용하려 했기 때문에 에러가 난 것입니다.
헤더를 제외하기 전에 저 코드로 필터된 내용이 있는지 확인하면 될 것 같네요..
'### 필터된 결과가 헤더만 있을때는 임시 공간에 False를 채워넣는다. by abyul.com 2012.07.25 If AllRng.SpecialCells(xlCellTypeVisible).Cells.Count = AllRng.Columns.Count Then Range(TRng, TRng.Offset(0, 1)) = Array(False, False) '### 필터링한 결과가 없으면 False를 채워넣는다. Else Set DataRng = AllRng.Offset(1).Resize(AllRng.Rows.Count - 1) '// 헤더 로우를 제외시킴 DataRng.SpecialCells(xlCellTypeVisible).Copy TRng '// DataRng의 데이터를 임시영역인 TRng로 이동 (즉, Temp_Save 시트에 쓰기가 됨) End If
main 함수에서 아래처럼 첫번째 값이 False인 경우에 해당 값이 없다고 하고 종료하면 되겠습니다.
Sub Eng_Labor_Form_make()
If Temp_DataSet(1, 1) = False Then MsgBox "해당 하는 데이터가 없습니다." Exit Sub End If
제가 제시했던 코드는..
자동 필터된 최종 결과가 헤더만 있을 경우에는 없다고 표시하라는 의미였습니다.
If rngAutoFilter.SpecialCells(xlCellTypeVisible).Cells.Count = 6 Then
엑셀대단해님이 코드에 적용하신 것은..
헤더를 일단 제외한 다음에 저 코드를 적용하려 했기 때문에 에러가 난 것입니다.
헤더를 제외하기 전에 저 코드로 필터된 내용이 있는지 확인하면 될 것 같네요..
'### 필터된 결과가 헤더만 있을때는 임시 공간에 False를 채워넣는다. by abyul.com 2012.07.25
If AllRng.SpecialCells(xlCellTypeVisible).Cells.Count = AllRng.Columns.Count Then
Range(TRng, TRng.Offset(0, 1)) = Array(False, False) '### 필터링한 결과가 없으면 False를 채워넣는다.
Else
Set DataRng = AllRng.Offset(1).Resize(AllRng.Rows.Count - 1) '// 헤더 로우를 제외시킴
DataRng.SpecialCells(xlCellTypeVisible).Copy TRng '// DataRng의 데이터를 임시영역인 TRng로 이동 (즉, Temp_Save 시트에 쓰기가 됨)
End If
main 함수에서 아래처럼 첫번째 값이 False인 경우에 해당 값이 없다고 하고 종료하면 되겠습니다.
Sub Eng_Labor_Form_make()
If Temp_DataSet(1, 1) = False Then
MsgBox "해당 하는 데이터가 없습니다."
Exit Sub
End If
자세한건 첨부파일을 참고하세요..
다운받기 : Test-1.xlsm
** 역시 엑셀파일을 첨부해주시니.. 답변하기가 쉽네요..
앞으로 질문하실거면 엑셀 파일을 꼭 좀 첨부해주세요.. ^^