반응형

'Range.Validaiton.Add
'①xlDVType : 데이터유효성검사 형식입니다. xlValidateList
'②AlterStype : 오유메시지 형식입니다.(기본값은 중지(Stop)입니다. 선택인수)
'③Operator : 연산방식입니다.(목록에서는 사용하지 않습니다. 선택인수)
'④Formula1 : 데이터유효성검사로 작성할 수식 또는 목록입니다.
'⑤Formula2 : 연산방식이 포함 또는 포함하지 않음일 경우, 두번째로 작성하는 수식입니다.
'상세설명링크
'오류메시지 형식 : https://docs.microsoft.com/en-us/office/vba/api/excel.xldvalertstyle
'연산방식 : https://docs.microsoft.com/en-us/office/vba/api/excel.xlformatconditionoperator
'Validation Add 상세 설명 : https://docs.microsoft.com/en-us/office/vba/api/excel.validation.add

 

 

데이터 > 데이터 유효성 검사

 

 

반응형

'VBA' 카테고리의 다른 글

With  (0) 2024.12.31
Collection  (0) 2024.12.27
VBA Tips  (0) 2024.12.17
확장 영역 자동 선택  (0) 2024.11.28
[직장인 필수] 엑셀 VBA 자동화, 이 영상으로 마스터하세요! | 초보자 맞춤, 4시간 완성 코스  (0) 2024.11.27
반응형

'같은 변수를 여러번 작성할 때 With문을 사용하면 편리하다.
'#With문 예제1
Dim WS As Worksheet
Set WS = Sheet1

WS.Range("A1").Font.Size = 14
WS.Range("A1").Interior.Color = vbRed
WS.Range("A1").RowHeight = 15


'#With문 예제2
Dim WS As Worksheet
Set WS = Sheet1

With WS.Range("A1")
    .Font.Size = 14
    .Interior.Color = vbRed
    .RowHeight = 15
End With

반응형
반응형

Collection

 

'#새로운 Collection 만들기
Dim Coll As Collection
Set Coll = New Collection

'#Collection의 값 제거하기
Coll.Remove (Key)

'#Collection에 값 추가하기
Coll.Add 값
Coll.Add 값, Key

'#Collection 값 돌아가며 확인하기
Dim v As Variant
For Each v In Coll
    Debug.Print v
Next

 

 

아래는 Collection의 Key를 이미 사용한 것일때 나오는 오류이다.

반응형

'VBA' 카테고리의 다른 글

데이터 유효성 검사  (0) 2024.12.31
With  (0) 2024.12.31
VBA Tips  (0) 2024.12.17
확장 영역 자동 선택  (0) 2024.11.28
[직장인 필수] 엑셀 VBA 자동화, 이 영상으로 마스터하세요! | 초보자 맞춤, 4시간 완성 코스  (0) 2024.11.27
반응형

VBA Tips

 

2024년 12월 17일 화

Sub and Function

'Sub >Sub Procedure > 어떤 동작을 수행할 때(실행문)
'Function > 어떤 값을 결과로 출력해야 할 때
'VLOOKUP, SUMIF, SUM, IF함수
'=VLOOKUP(찾을값, 범위, 열번호, 일치옵션)...

 

 

Function name(함수명)

함수명은 대소문자를 구분하지 않느나 중간중간 대문자를 썩어주는 오탈자 방지가 된다.

 

 

마지막 행과 마지막 열 찾기

    Set StartCell = Me.Range("A1")
    LastRow = StartCell.Worksheet.Cells(StartCell.Worksheet.Rows.Count, StartCell.Column).End(xlUp).Row
    LastCol = StartCell.Worksheet.Cells(StartCell.Row, StartCell.Worksheet.Columns.Count).End(xlToLeft).Column

 

마지막 행찾기에서 위에서 내려오는 방법에서 문제점
중간에 셀이 비어 있으면 멈춰버림. 따라서 마지막셀을 찾으려면 시트의 마지막셀에서 위로 올라오는 방법을 사용
행의 갯수는 ver2003이전에는 2^16=65536행, 이후 '2^20=1048576행

 

 

 

변수 정의

'Dim 통합문서 As Workbook
'Set 통합문서 = ThisWorkbook '현재통합문서
'Set 통합문서 = ActiveWorkbook '현재 실행중인 또 다른 활성화된 통합문서를 할당
'Set 통합문서 = Application.Workbooks.Open(경로) '경로에 있는 특정파일을 실행해서 그 통합문서로 만들어준다.

'Dim 시트 As Worksheet
'Set 시트 = ActiveSheet
'Set 시트 = 통합문서.Worksheets("시트이름" 또는 순번) '실무에서는 이것만 알아도 된다.
'Set 시트 = Sheet1


'Dim 범위 As Range
'Set 범위 = 시트.Range("a1:a2")
'Set 범위 = 시트.Cells(행번호, 열번호)
'Set 범위 = Selection

 

 

 

하나의 모듈내에 실행문의 이름과 함수의 이름이 같으면 에러가 난다.

다음은 Sub DynamicRange(), Function DynamicRange(ws As Worksheet, Column As String, InitRow As Long) As Range 이렇게 같은 이름을 가진 실행문과 함수가 같은 모듈에 들어 있을때 나타나는 오류메시지이다.

 

 

Change Event사용시 주의사항

무한 반복에 빠질 수 있다.

따라서 Change Event에 아래 코드를 넣어준다.

Private Sub Worksheet_Change(ByVal Target As Range)
'Change 이벤트는 셀이 변경되었을 때 동작한다.
Application.ScreenUpdating = False
Application.EnableEvents = False

If Not Intersect(Target, Range("셀주소")) Is Nothing Then
    '실행할 명령문
End If

Application.ScreenUpdating = True
Application.EnableEvents = True

End Sub

 

 

Collection 알아두면 좋은 Tip

'#새로운 Collection 만들기
Dim Coll As Collection
Set Coll = New Collection

'#Collection의 값 제거하기
Coll.Remove (Key)

'#Collection에 값 추가하기
Coll.Add 값
Coll.Add 값, Key

'#Collection 값 돌아가며 확인하기
Dim v As Variant
For Each v In Coll
    Debug.Print v
Next
반응형

'VBA' 카테고리의 다른 글

With  (0) 2024.12.31
Collection  (0) 2024.12.27
확장 영역 자동 선택  (0) 2024.11.28
[직장인 필수] 엑셀 VBA 자동화, 이 영상으로 마스터하세요! | 초보자 맞춤, 4시간 완성 코스  (0) 2024.11.27
ReDim의 주요 목적  (0) 2024.11.11
반응형

Anno Domini

라틴어로 주님의 해

반응형
반응형

확장 영역 자동 선택

 

Sub ExpandRange()
    Dim Rng As Range
    Dim StartCell As Range
    Dim LastRow As Long
    Dim LastCol As Long

    ' 초기 시작 셀 설정 (예: A1)
    Set StartCell = Range("A1")

    ' 마지막 행과 마지막 열 찾기
    LastRow = StartCell.Worksheet.Cells(StartCell.Worksheet.Rows.Count, StartCell.Column).End(xlUp).Row
    LastCol = StartCell.Worksheet.Cells(StartCell.Row, StartCell.Worksheet.Columns.Count).End(xlToLeft).Column

    ' 동적 범위 정의
    Set Rng = StartCell.Worksheet.Range(StartCell, StartCell.Worksheet.Cells(LastRow, LastCol))

    ' 결과 출력
    MsgBox "새로 정의된 범위: " & Rng.Address, vbInformation, "확장된 영역"
End Sub

 

 

코드 설명

  1. 시작 셀 지정
    • Set StartCell = Range("A1")를 통해 데이터가 시작되는 첫 번째 셀을 지정합니다.
  2. 마지막 행과 열 찾기
    • LastRow: 시작 열에서 데이터가 있는 마지막 행을 찾습니다.
    • LastCol: 시작 행에서 데이터가 있는 마지막 열을 찾습니다.
  3. 동적 범위 정의
    • Range(StartCell, Cells(LastRow, LastCol))를 사용하여 새로 확장된 영역을 동적으로 설정합니다.
  4. 결과 확인
    • 확장된 범위를 메시지 박스로 출력하여 확인할 수 있습니다.

 

데이터 추가 후 자동 실행 (워크시트 변경 이벤트 활용)

데이터가 추가될 때마다 자동으로 영역이 확장되도록 하려면 워크시트 변경 이벤트를 활용할 수 있습니다.

이벤트 코드: 워크시트 변경 감지

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim StartCell As Range
    Dim LastRow As Long
    Dim LastCol As Long
    Dim Rng As Range

    ' 초기 시작 셀 설정 (예: A1)
    Set StartCell = Me.Range("A1")

    ' 마지막 행과 열 찾기
    LastRow = Me.Cells(Me.Rows.Count, StartCell.Column).End(xlUp).Row
    LastCol = Me.Cells(StartCell.Row, Me.Columns.Count).End(xlToLeft).Column

    ' 동적 범위 정의
    Set Rng = Me.Range(StartCell, Me.Cells(LastRow, LastCol))

    ' 확장된 범위를 표시 (선택적)
    Debug.Print "확장된 영역: " & Rng.Address
End Sub

 

사용 방법

  1. 해당 코드를 변경하려는 워크시트의 코드 창에 추가합니다.
    • VBA 편집기에서 해당 워크시트를 선택 후 추가.
  2. 데이터를 추가하거나 변경하면 자동으로 동작합니다.

 

결과

  • 원래 데이터: $A$1:$B$10
  • 새 데이터 추가: A11 또는 B11에 데이터를 추가하면 자동으로 $A$1:$B$11로 범위가 확장됩니다.
  • 확인 방법: Rng 변수에 새롭게 확장된 영역이 저장됩니다.

위 코드는 엑셀에서 데이터를 동적으로 관리할 때 유용합니다.

반응형
반응형

[직장인 필수] 엑셀 VBA 자동화, 이 영상으로 마스터하세요! | 초보자 맞춤, 4시간 완성 코스

 

https://youtu.be/NAJpBaUU_9M?si=oPJSNvPTyUxzmWpR

 

반응형

'VBA' 카테고리의 다른 글

VBA Tips  (0) 2024.12.17
확장 영역 자동 선택  (0) 2024.11.28
ReDim의 주요 목적  (0) 2024.11.11
V=range("NFE")와 V=range("NFE").Value의 차이점  (0) 2024.11.10
VBA 코드에서 언더스코어(_)의 기능  (0) 2024.11.09
반응형

1. ReasearchRabbit
논문 관련 문헌 검색

 

https://www.youtube.com/watch?v=phWqcGcxeE4

 

 

https://www.jcu.edu.au/__data/assets/pdf_file/0008/1958831/Research-Rabbit-Overview.pdf

2. PopAi


논문 요약

3. Napkin.Ai

발표자료 시각화

https://youtu.be/G1n_MJUsG28?si=cBwAJ05qkD-4Z4Wk

 

반응형

'알면 힘이되는 것' 카테고리의 다른 글

멀티스카프 쓰는 방법  (0) 2024.06.27
Perplexity  (0) 2024.06.26
Windows11 바탕화면 바로가기  (0) 2024.06.19
중고나라 사기  (0) 2024.05.18
재래기  (0) 2024.05.16
반응형

am은 "ante meridiem"을, 즉 "오전"을 나타내고, pm은 "post meridiem"을, 즉 "오후"를 나타냅니다.

반응형
반응형

토토리
acorn

반응형

+ Recent posts