Dim digit As Integer Dim num As Double num = 123.456 digit = Len(CStr(num)) - InStr(CStr(num), ".")
[VBA]
엑셀의 파일 형식중 .xls, .xlsx 파일등을 번갈아가며 사용할 때 저장 형식을 지정해 주지 않으면 save나 saveas 명령어를 쓸 때 오류가 날경우가 있다. 그럴 경우를 방지하고자 앞에 기본 저장 설정을 해주는 것이 좋다. Sub 기본형식변경() Application.DefaultSaveFormat = 51 Debug.Print Application.DefaultSaveFormat '또는 Application.DefaultSaveFormat = xlWorkbookDefault Debug.Print Application.DefaultSaveFormat End Sub 앞에 기본으로 써주면 된다. 필자는 습관처럼 아래코드를 쓰고 시작한다. Sub 기본설정() Application.ScreenUpdat..
※ 백에서 엑셀 파일 가져오기 아래 코드를 실행하면 데이터를 가져올 파일이 직접 열리면서 값을 가져오게 된다. (순서가 바껴서 수정) 아래가 getobject 함수를 사용해서 백에서 가져옵니다. Sub 다른엑셀파일가져오기() Application.ScreenUpdating = False Application.DisplayAlerts = False Dim str가져올파일 As String Dim obj가져올파일 As Object Dim wb가져올파일 As Workbook, wb현재파일 As Workbook Dim ws시트1 As Worksheet, ws현재시트 As Worksheet '하드코딩 str가져올파일 = "C:\Users\USER\Desktop\Test\test.xlsx" '현재 워크북 set S..
보통 아래의 화면처럼 숫자인데 초록색 삼각형 경고창이 뜨는 경우 VBA에서 값을 계산할 때 인식하지 못 하는 경우가 생긴다. 그럴 경우 초록색 삼각형을 풀어주고 싶을 때 vba 서식을 NumberformatLocal 함수를 써서 서식을 바꾸지만 해당 경우같은 경우는 서식은 바뀌지만 경고창은 풀리지 않는다. 그럴경우 vba를 사용하지 않는다면 셀을 더블클릭하거나 해야 하는데 vba에서는 어떻게 하는지 알아보자. Sub 형식변환() Range("b2") = Val(Range("b2")) End Sub 위는 변환을 하는 코드이다. 결과를 보면 해당셀의 경고창이 사라졌다. 이렇게 해서 전체를 풀고싶으면 전체를 range변수로 잡아서 풀어줘야 겠다...생각하고 코드를 짠다면 아래와 같을것이다. Sub 형식변환()..
워크시트가 숨겨진경우 모든 워크 시트를 보이게하는 코드이다. Sub VisibleSheets() Dim ws As Worksheet For Each ws In ActiveWorkbook.Sheets ws.Visible = xlSheetVisible Next End Sub
Sub sum() Range("c3").Value = Application.WorksheetFunction.sum(Range("a1", "a10")) End Sub - 지금은 하드코딩을 했지만 적절하게 사용하면 된다.