본문 바로가기

엑셀/엑셀 VBA28

VBA Workbook, Sheet, Range와 Select 메서드 에러와 대책 Select를 굳이 왜 배울까 싶다가도 나는 코드 짤때 자주쓴다.  파일 불러오거나 객체를 제대로 불러온게 맞나 확인할겸 Select를 자주쓰는데 이때 에러가 자주나온다. 당연히 에러 나올때마다 검색해보는데 결과가 안뜬다.. Select 메서드에는 다들 관심이 없는것 같다. 심지어 stackoverflow에도 내가 궁금해했던 것들이 안나온다.  너무 간단한 메서드라 그런가?  문제점을 찾아보기 위해 직접 하나씩 실행해보면서 에러가 나는 구문과 안나는 구문을 나눠봤다.   이 코드는 실행하면 에러 안남Range("A3").Select 이것도 에러 안남Sheets(2).Select 근데 이렇게하면 에러가 남(빨간색 표시는 에러구문)Sheets(2).Range("A10").Select  또 에러가 나는 것들T.. 2024. 7. 13.
Open했을때 열려있는 파일이면 그대로 실행하고 안열려있으면 열기 Workbook Open메서드 종종 실무에서 쓰는데, 안열려있는 파일을 열려고하면 문제가 없는데열려있는 파일을 열려고하면 엑셀에서 "꼭 해당파일은 열려있는데 ~~ " 이런 말을 한다. 보기 싫으면 어떻게해야 될까? 결론부터 말하면  그걸로 Open 하는 코드를 쓰기전에알람기능을 꺼버리면 된다. ============================== Application.DisplayAlerts = False 열고싶은파일.Open Application.DisplayAlerts = True ================================ 복잡하게 if문과 GoTo를 쓸 생각을 했는데, 그냥 파일제거하기 전 알람끄는 것처럼파일을 열기전에 알람을 꺼버리면 문제가 해결된다. 이렇게 코드를 짜면 파일이해.. 2024. 6. 1.
VBA Open 과 Application.Screenupdating = False 쓰면 버그,에러 VBA에서 코드짤때 Application.screenupdaing = False 이거는 워낙 자주쓰고파일열때 쓰는 Open 메서드도 자주쓰는데 이거 두개를 같이, 잘못쓰면 문제가 생긴다. 회사에서 매크로만들다가 생긴문제라 코드를 보여주진 못하지만============================Application.screenupdaing = False set 객체 =  객체.Open(생략) Application.screenupdaing = True=============================대충 이런 코드였고 for 순환문으로 계속 자료를 퍼나르는 형식임.A파일 자료 → B파일로 복붙하는 매크로였는데 F8을 눌러서 한줄씩 작동시키면 문제가없는데F5를 눌러서 한번에 실행시키면 A파일자료를 복사해서.. 2024. 5. 30.
VBA Like 연산자 활용 (추가) https://www.youtube.com/watch?v=OG7qR-9IsNA&list=PLfxvqpVCYZ8e0qlyc_FU46neoWjO7yTWj&index=20&ab_channel=%EC%97%91%EC%85%80%EB%94%94%EC%9E%90%EC%9D%B8 강의보고 필받아서 더 만듦. D + 숫자4자리인것만 가져오기          이거는 한 행에 2개인경우 2개다 가져오는 형식인데 맨 앞에줄에 띄어쓰기가 된다은근 거슬리는데 어떻게 빼는방법 없을까..? 2024. 5. 17.
숫자만 빼내기(추출하기) Like 연산자 활용, 함수, 자체함수 등등 1. VBA Like 연산자 활용 ? : 문자1칸# : 숫자1칸* : 0자 이상 모든것. 예) ABC는 *A*조건에서 TRUE  [A-C][A-Z][가-힣] if not 문자열 like "A*" then     A1-B가C나3다-100 → 가나다로 바꾸는 순환물 + Like 코드 참고)https://lst914.tistory.com/entry/Like%EB%A1%9C-%EC%A1%B0%EA%B1%B4%EC%97%90-%EB%A7%9E%EB%8A%94-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%B6%94%EC%B6%9C%ED%95%98%EA%B8%B0 Like로 조건에 맞는 데이터 추출하기!『 회사 실무자들이 업무를 처리하다 보면 상품 혹은 거래처 코드가 123-a-11aa와 같은 형태로 부.. 2024. 5. 17.
파일 존재하는지, 열려있는지 함수 IsFileExist, IsFileOpen Function IsFileExist(파일 As Variant) As Boolean  IsFileExist = Dir(파일)  ""    End Function  Function IsFileOpen(파일 As Variant) As Boolean  Dim 열린파일 As Workbook     On Error Resume Next   Set 열린파일 = Workbooks(Dir(파일))   IsFileOpen = Err.Number = 0   End Function 2024. 5. 15.
엑셀파일 열기 GetOpenFilename Sub 파일선택()  Dim 선택파일 As Variant  Dim 파일형식 As String    파일형식 = "엑셀 파일 (*.xls*), *.xls*"    선택파일 = Application.GetOpenFilename(FileFilter:=파일형식, Title:="작업 파일 선택")    If 선택파일  False Then     Workbooks.Open Filename:=선택파일     Else     MsgBox "파일을 선택하지 않았습니다."     End If   End Sub 2024. 5. 15.
파일(Workbook)이 열려있는지 확인하는 법 출처 : 엑셀 바이블 486p  Function IsFileOpen(파일 As String) As Boolean   Dim 열린파일 As Workbook      On Error Resume Next        Set 열린파일 = Workbooks(Dir(파일))     IsFileOpen = (Err.Number = 0)      End Function 파일이 열려있을 경우 : → Dir(파일)이 파일명을 뱉어냄 → 열린파일이라는 변수에 Workbooks 개체가 맞게 들어감→ 에러 발생안함→ Err.Number = 0이 됨→ IsFileOpen이 True가 됨 파일이 열려있지 않을경우(파일이 존재하지 않는 경우 등등):→ 열린파일이라는 변수에 Workbooks 개체가 안 들어감 [★밑에설명]→ 에러 .. 2024. 5. 15.