vba(25)
-
vba 이름정의 수정하기
'# 이름 정의 하는 법 With ThisWorkbook '# 이름 정의 기존 것 삭제 .Names("TEST").Delete '# 이름 정의 추가 .Names.Add "TEST", RefersTo:="=OFFSET(Sheet2!" & "$E$" & cht_row & ",,,-Sheet2!$C$13)" '# 이름정의 만들고 범위 넣기. End With * cht_row 이 로우는(차트범위임) 항상 바뀌기 때문에 이름정의를 이용하여 구현했음. With ThisWorkbook.Names("Test") .Name = "Test" .RefersTo = "=OFFSET(Sheet2!" & "$E$" & cht_Row & ",,,-Sheet2!$C$13)" End With
2020.02.18 -
msgbox "이름이 없습니다. 추가 하시겠습니까"그리고 나이는 현재 년도를 생년월일에서 뺀값이 자동으로 나오게 하고싶습니다.
Q : 안녕하세요 vba 코드질문입니다. 코드를 추가하고 싶은데 잘안되서 문의드립니다. 검색 기능코드에서 없는이름이있을때 msgbox "이름이 없습니다. 추가 하시겠습니까" 그리고 나이는 현재 년도를 생년월일에서 뺀값이 자동으로 나오게 하고싶습니다. A : 추가하시겠습니까? 를 예, 아니오로 선택할 수 있게 하고 만약 대답이 yes면 조건 안으로 들어가고 나이의 경우 now() 함수를 사용하여 format을 연도만 구해서 현재연도 - 생년월일 하면 될 것 같습니다. If MsgBox("이름이 없습니다. 추가 하시겠습니까?", vbYesNo) = vbYes Then '만약, "예" 버튼을 눌렀다면 ' 현재 year과 생년월일을 뺀다. txt나이 = Format(Now(), "yyyy") - Format..
2020.02.18 -
VBA Enter했을 때 동작하도록
VBA에서도 VB와 마찬가지로 UserForm을 사용할 수 있는데요. Userform에서 텍스트 박스에 내용 입력 후 엔터를 쳤을 때 무언가가 동작 하도록 하고 싶을 때 사용 합니다. Private Sub txtTerm_KeyDown(ByVal KeyCode As msforms.ReturnInteger, ByVal Shift As Integer) '//Keydown If KeyCode = 13 Then 'enter키를 눌렀을 때 동작 ' //코드 작성 End If End Sub
2020.01.08 -
VBA 열 여러개 추가 (insert)
코드 실행 전 코드 : ms.Columns(2).Resize(, 2).Insert Shift:=xlToRight 코드 실행 후 Sub test() Dim m As Workbook: Set m = Workbooks(ThisWorkbook.Name) Dim ms As Worksheet: Set ms = m.Sheets(ActiveSheet.Name) ms.Columns(2).Resize(, 2).Insert Shift:=xlToRight '# ms = 활성화 된 엑셀시트 '# Columns(2) = 두 번째 컬럼(열) '# .Resize(,2) = 두 번째 컬럼에서 우측으로 두 칸 '# .insert = 우측으로 두 칸을 추가한다. '# Shift:=xlToRight = 옵션임 우측으로 추가하는 거 En..
2020.01.08 -
VBA 숫자 정렬, 버블정렬 1탄
소스 Sub GoGo_Bubble() Dim m As Workbook: Dim ms As Worksheet Set m = Workbooks(ThisWorkbook.Name) Set ms = m.Sheets(ActiveSheet.Name) Dim num() As Variant ' //임의 숫자 버블정렬 하기. num() = Array(10, 3, 6, 7, 4, 2, 9, 8, 1) ' //cells에 뿌려보기 For i = 0 To UBound(num) ms.Cells(i + 1, 1) = num(i) Next i ' //Bubble 함수 호출 Call Bubble_Ssun(num()) ' //cells에 뿌려보기 For i = 0 To UBound(num) ms.Cells(i + 1, 2) = num(..
2020.01.08 -
VBA 배열과 Range의 속도차이!
100,000행에 "ㅎㅎ" 라는 글자를 넣는 업무를 한다고 하면! Range를 사용해서 넣었을 때와 배열을 사용해서 넣었을 때의 속도차이를 보겠다. 우선 Range를 사용하여 "ㅎㅎ"라는 글자를 넣는다. Range : 100,000 행에 "ㅎㅎ" 라는 글자 채우기 : 1.63초 [Range 사용] Sub test() Dim m As Workbook: Set m = Workbooks(ThisWorkbook.Name) Dim ms As Worksheet: Set ms = m.Sheets(ActiveSheet.Name) Dim oldTime As Single: oldTime = Timer Dim rng As Range, rn As Range Set rng = ms.Range("A1:A100000")..
2020.01.08