VBA(5)
-
[VBA] 소스 파일에서 복사해서 대상 파일로 붙여넣기 하는 소스
(기록용) index.xlsx파일에 적어서 반복하려고 만든 소스, 계속 까먹어서 매번 찾기 귀찮아서 올림 Sub DataPaste(SourceFilePath As String,SourceFileName As String,SourceSheetName As String,SourceRange As String,DestnationFileName As String,DestnationSheetName As String, DestnationCell As String) ' Set wb = Workbooks.Open(SourceFilePath) Application.DisplayAlerts = False Windows(SourceFileName).Activate Sheets(SourceSheetName).Select R..
2022.03.18 -
[VBA] 시트 이름에 단어가 포함되면 이름을 변경하는 소스
Sub Main() For Each SheetName In Worksheets If InStr(SheetName.Name, "38W") Then SheetName.Name = Replace(SheetName.Name, "38W", "40W") MsgBox (SheetName.Name) End If Next End Sub 위는 38W가 들어간 시트 이름을 전부 시트 이름 그대로에서 38W를 40W로 바꾸는 로직이다. 시스템 문제때문에 템플릿이 한달동안 밀려서 바꾸는데에 썼다
2021.11.10 -
[VBA] 에러 핸들링
Function 함수이름() On Error GoTo ErrorHandling 1 에러 나면 넘기고 싶은 부분 2 코딩(왼쪽 숫자는 Error시 알 수 있게 넘버링 한 것) ErrorHandling: If Err.Number 0 Then 함수이름= Err.Source & "_" & Err.Description & " ErrorLine : (" & Erl & ") / " & Now '이거는 에러를 어떻게 뱉을지에 따라 수정하면 됨 Else End If On Error GoTo 0 End Function RPA를 하다보면 VBA 코드를 쓸 일이 많아진다. 문제는 Uipath로 invoke VBA를 사용하면 매크로 에러가 발생 하였을 때 Uipath가 그상태로 멈춰버린다는 것이다. 엑셀에서 Alert 창이 뜬..
2021.06.03 -
[VBA] 빈칸이면 윗 값을 쓰는 코드
위와 같은 상황에서, A열을 꽉 채우고 싶을 때 Sub AutoFill() Set AutofillSht = Sheets("Sheet1") AutofillSht.Select Set Alphabet= AutofillSht.Rows("1:10").Find(What:=Trim("알파벳")) Set Num = AutofillSht.Rows("1:10").Find(What:=Trim("숫자")) loopCnt = Num.CurrentRegion.Rows.Count - 1 '헤더를 제외한 만큼 반복 For i = 1 To loopCnt Set Alphabet= Alphabet.Offset(1, 0) If Alphabet= "" Then '만약 가져온 Alphabet이 빈칸이면 Alphabet.Offset(0, 0) ..
2021.05.27 -
[VBA] 마지막 열 수 알아내는 법
Sub Main() Dim ColLen As Long ColLen = Sheet1.Cells(Rows.Count, 2).End(xlUp).Row MsgBox ColLen End Sub 이렇게 A열의 마지막 행이나 B열의 마지막 행을 알고 싶을땐 위 내용을 쓰면 된다. 위 코드는 B열 행의 개수이고 A열은 2를 1로 바꿔주기만 하면 된다. 끄읏 Set deleted = sht.Rows("1:10").Find(What:=Trim("삭제")) deleted.CurrentRegion.Rows.Count 일케하면 더 쉽넹 삭제 셀에 있는 row수 세는 것
2021.05.06