vba코드 관련하여 문의드립니다.

VBA
작성자
오대표
작성일
2022-07-24 19:17
조회
44
엑셀버전 : M365

운영체제 : 윈도우10

질문 요약 : vba코드가 흐트러진거 같습니다. ㅜㅜㅜ

우선 이전 다른 사용자분께서 만들어놓은 코드인데요..

 

Sub OpenfrmCustomer()
icfactory.Show

End Sub

Sub update()

Dim A As Double
Dim i, j, k As Integer
Dim rng As Range

j = 0
k = 0

Application.ScreenUpdating = False
Sheets("Main").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = "1"

If Application.WorksheetFunction.CountA(Worksheets("Main").Range("F:F")) > 1 Then
Sheets("Main").Select
Range("A1").Select
Selection.Copy
Sheets("Date").Select
Range("G2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.NumberFormatLocal = "0"
End If

If Application.WorksheetFunction.CountA(Worksheets("in").Range("A:A")) > 1 Then
Sheets("Main").Select
Range("A1").Select
Selection.Copy
Sheets("in").Select
Range("G2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.NumberFormatLocal = "0"
End If

If Application.WorksheetFunction.CountA(Worksheets("Out").Range("A:A")) > 1 Then
Sheets("Main").Select
Range("A1").Select
Selection.Copy
Sheets("Out").Select
Range("G2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.NumberFormatLocal = "0"
End If

If Application.WorksheetFunction.CountA(Worksheets("Item Master").Range("A:A")) > 1 Then
Sheets("Main").Select
Range("A1").Select
Selection.Copy
Sheets("Item Master").Select
Range("B2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.NumberFormatLocal = "0"
End If

Sheets("Main").Select
Range("A1").Select
Selection.Clear

'1. Date 시트에 없는 in 시트 상품 가져오기

If Application.WorksheetFunction.CountA(Worksheets("in").Range("A:A")) > 1 Then
For i = 1 To Application.WorksheetFunction.CountA(Worksheets("in").Range("A:A")) - 1
Sheets("in").Select
Range("G2").Select
Selection.Copy
Sheets("Date").Select
Range("A:L").Select
With Selection.Font
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
End With
Columns("G:G").Select
If Application.WorksheetFunction.IfError(Application.VLookup(Worksheets("in").Range("G" & i + 1).Value, _
Worksheets("Date").Range("G:G"), 1, False), "O") = "O" Then

If Application.WorksheetFunction.IfError(Application.VLookup(Worksheets("in").Range("G" & i + 1).Value, _
Worksheets("Item Master").Range("B:B"), 1, False), "O") <> "O" Then

A = Worksheets("in").Range("G" & i + 1).Text

Sheets("in").Select
Range("G:G").Select

Selection.Find(What:=A, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, MatchByte:=False, SearchFormat:=False).Select

Range(Selection.Offset(0, -6), Selection.Offset(0, 5)).Select
Range(Selection, Selection.End(xlToRight)).Copy
Sheets("Date").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
With Selection.Font
.Color = -4165632
.TintAndShade = 0
End With
j = j + 1
End If
End If
Next i
End If

'2. Date 시트에 있는 Out 시트 상품 삭제하기

If Application.WorksheetFunction.CountA(Worksheets("Out").Range("A:A")) > 1 Then
For i = 1 To Application.WorksheetFunction.CountA(Worksheets("Out").Range("A:A")) - 1
Sheets("Out").Select
Range("G" & i + 1).Select
Selection.Copy
Sheets("Date").Select
Columns("G:G").Select
If Application.WorksheetFunction.IfError(Application.VLookup(Worksheets("Out").Range("G" & i + 1).Value, _
Worksheets("Date").Range("G:G"), 1, False), "O") <> "O" Then

A = Worksheets("Out").Range("G" & i + 1).Text

Sheets("Date").Range("G2:G" & Application.WorksheetFunction.CountA(Worksheets("Date").Range("A:A")) - 1).Select

Selection.Find(What:=A, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, MatchByte:=False, SearchFormat:=False).Select

Range(Selection.Offset(0, -6), Selection.Offset(0, 5)).Select
Selection.Delete Shift:=xlUp
k = k + 1
End If
Next i
End If

Sheets("in").Select
Columns("G:G").Select
Selection.NumberFormatLocal = "0"
Columns("G:G").EntireColumn.AutoFit
Range("A1").Select

Sheets("Out").Select
Columns("G:G").Select
Selection.NumberFormatLocal = "0"
Columns("G:G").EntireColumn.AutoFit
Range("A1").Select

Sheets("Date").Select
Columns("G:G").Select
Selection.NumberFormatLocal = "0"
Columns("G:G").EntireColumn.AutoFit
Range("A1").Select

'3. Main 시트에 Date에 있는 상품 리스트 가져오기

If Application.WorksheetFunction.CountA(Worksheets("Date").Range("A:A")) > 1 Then

For i = 1 To Application.WorksheetFunction.CountA(Worksheets("Date").Range("A:A")) - 1

Sheets("Date").Select
A = Worksheets("Date").Range("G" & i + 1).Text

If Application.WorksheetFunction.IfError(Application.VLookup(Worksheets("Date").Range("G" & i + 1).Value, _
Worksheets("Item Master").Range("B:B"), 1, False), "O") <> "O" Then

Sheets("Item Master").Select
Range("B:B").Select

Selection.Find(What:=A, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, MatchByte:=False, SearchFormat:=False).Select

Range(Selection, Selection.Offset(0, 6)).Select
Selection.Copy
Sheets("Main").Select
Range("F" & i + 6).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

ActiveCell.Offset(0, 7).Value = Application.VLookup(Worksheets("Date").Range("G" & i + 1).Value, _
Worksheets("Date").Range("G:H"), 2, False)

End If
Range("a1").Select

Next i

End If

Sheets("Main").Select
Columns("H:H").Select
Selection.Copy
Columns("M:M").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("M6").Select
ActiveCell.FormulaR1C1 = "QTY"
Range("A1").Select

Columns("A:L").Select
With Selection
.HorizontalAlignment = xlLeft
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Columns("F:F").Select
Selection.NumberFormatLocal = "0"
Columns("F:F").EntireColumn.AutoFit

Range("L4") = Application.WorksheetFunction.Sum(Worksheets("Main").Range("m:m"))

Range("A1").Select

Application.ScreenUpdating = True

MsgBox "In 시트 " & j & "개 추가, Out 시트 " & k & "개 삭제하였습니다."

End Sub

 

 

현재 이 코드이고 화면은 첨부1 이미지 처럼 기존에는 Product name칸이 없었습니다. 그런데 해당칸을 삽입하고 난뒤에 업데이트 누르니 첨부2 처럼 틀어졌는데요.. 제가 해당칸을 늘릴때는 vba언어 사용하지 않고 함수 vlookup을 사용했습니다...

 

혹시 코드를 어떻게 수정을 해야 흐트러지지 않을까요 ???

 

 

tempsnip.png

tempsnip2.png

전체 0

전체 7,301
번호 카테고리 제목 작성자 작성일 추천 조회
알림
[🏆 VBA 4주 완성 특별 스터디] 1기 - 우수 졸업생 및 후기, 축하합니다! (5)
오빠두엑셀 | 2022.07.31 | 추천 7 | 조회 842
오빠두엑셀 2022.07.31 7 842
공지사항 함수/공식
New [신규 기능 업데이트!] 👉 이제 게시글 작성시 스크린샷 복/붙이 가능합니다! 😎 (2)
오빠두엑셀 | 2022.08.04 | 추천 3 | 조회 64
오빠두엑셀 2022.08.04 3 64
공지사항 함수/공식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (87)
오빠두엑셀 | 2021.10.28 | 추천 116 | 조회 5957
오빠두엑셀 2021.10.28 116 5957
40987 VBA
New 선택한 셀 근처에 차트 나타내기 엑셀파일첨부파일 (1)
eexcell | 2022.08.08 | 추천 0 | 조회 23
eexcell 2022.08.08 - 23
40982 VBA
New 입력 수량에 따른 버튼 또는 레이블 생성 첨부파일
늙은베짱이 | 2022.08.08 | 추천 -2 | 조회 22
늙은베짱이 2022.08.08 -2 22
40974 함수/공식
New 사과를 치면 옆 셀에 과일로, 배추를 치면 옆 셀에 야채로 넣는 방법 첨부파일 (6) 답변완료
곡식창고 | 2022.08.08 | 추천 0 | 조회 37
곡식창고 2022.08.08 - 37
40971 기능/도구
New 이름 정의 범위 선택시 에러 발생 엑셀파일첨부파일 (3)
라운드티 | 2022.08.08 | 추천 0 | 조회 36
라운드티 2022.08.08 - 36
40966 함수/공식
New TEXTJOIN함수에서 대싱 셀값이 0일때 JOIN안되게 하는 방법 (8) 답변완료
마운틴 | 2022.08.08 | 추천 0 | 조회 41
마운틴 2022.08.08 - 41
40963 함수/공식
New 특정문자가 포함된 여러 셀값을 특정문자 별로 정리하고 싶습니다. 엑셀파일 (1)
rin**** | 2022.08.08 | 추천 0 | 조회 33
rin**** 2022.08.08 - 33
40961 기능/도구
New G메일로 받은 내용 중 회신시간이 늦은 메일들을 엑셀로 관리할 수 있는 방법이 있을까요 ? (1)
최사무엘 | 2022.08.08 | 추천 0 | 조회 28
최사무엘 2022.08.08 - 28
40960 기능/도구
New 보안경고 안뜨게 설정하려면 어떻게 옵션을 설정해야 하나요? 첨부파일 (1)
니가가라 하와이 | 2022.08.08 | 추천 0 | 조회 19
니가가라 하와이 2022.08.08 - 19
40958 차트/그래프
New 그래프 가로 축 레이블 설정 부분 첨부파일 (1)
성호 | 2022.08.08 | 추천 0 | 조회 29
성호 2022.08.08 - 29
40955 함수/공식
New 선택 셀의 좌측 셀값을 가져오는 수식이 필요합니다. 엑셀파일 (3)
낮은자 | 2022.08.08 | 추천 0 | 조회 44
낮은자 2022.08.08 - 44
40953 함수/공식
New 특정 조건에 맞추어 월 별 주차 계산을 하고 싶습니다 엑셀파일첨부파일 (2)
행주 | 2022.08.07 | 추천 0 | 조회 34
행주 2022.08.07 - 34
40952 문서서식
New 데이터 유효성 검사 - 드롭다운 표시 항상 보이게? 첨부파일 (1)
두리둥 | 2022.08.07 | 추천 0 | 조회 30
두리둥 2022.08.07 - 30
40945 VBA
New 엑셀 파일 엑셀 다른이름 자동 저장이 가능할까요? 노가다 살려주세요 ㅠㅠ (2)
듀링e | 2022.08.07 | 추천 0 | 조회 56
듀링e 2022.08.07 - 56
40937 파워쿼리/피벗
New 시트별로 열이 다른 경우 시트를 통합하는 방법 첨부파일 (1)
곰도리 | 2022.08.07 | 추천 0 | 조회 37
곰도리 2022.08.07 - 37
40936 VBA
New 달력 유저폼 실행위치관련 질문 엑셀파일첨부파일 (6) 답변완료
033cola | 2022.08.07 | 추천 1 | 조회 46
033cola 2022.08.07 1 46
40921 함수/공식
New 값이 있는 경우에만 DATE 함수가 적용되도록 하고 싶습니다. 첨부파일 (2) 답변완료
지용 | 2022.08.06 | 추천 0 | 조회 47
지용 2022.08.06 - 47
40916 문서서식
New 이동옵션에서 상수와 수식 첨부파일 (1)
황혼고래 | 2022.08.06 | 추천 0 | 조회 50
황혼고래 2022.08.06 - 50
40915 문서서식
New 셀 서식 중 "월", 월 차이 (2)
보라색양털 | 2022.08.06 | 추천 1 | 조회 47
보라색양털 2022.08.06 1 47
40912 함수/공식
New IF 조건문이 잘 되지 않습니다. 첨부파일 (5) 답변완료
비트리 | 2022.08.06 | 추천 0 | 조회 44
비트리 2022.08.06 - 44
40908 VBA
New 매월 초 100개의 파일을 100개의 거래처로 메일 보내는 방법 문의 (1)
alth**** | 2022.08.06 | 추천 0 | 조회 56
alth**** 2022.08.06 - 56
40906 기능/도구
New 시트 이동복사 했는데 똑같이 보여지지 않아요 (1) 답변완료
pooh09**** | 2022.08.06 | 추천 1 | 조회 45
pooh09**** 2022.08.06 1 45
40904 문서서식
New 4명의 일일실적을 월별 총합으로 보기좋게 작성할 수 있을까요? (4) 답변완료
nobody | 2022.08.06 | 추천 0 | 조회 46
nobody 2022.08.06 - 46
40903 함수/공식
New =YahooFinanceHistory( )사용방법 문의 (2) 답변완료
eexcell | 2022.08.06 | 추천 0 | 조회 36
eexcell 2022.08.06 - 36
40902 VBA
New Page_Setup에서 codename 전달 (2) 답변완료
도다리 | 2022.08.05 | 추천 0 | 조회 33
도다리 2022.08.05 - 33
40898 함수/공식
New 함수 해석좀... (2)
sky3**** | 2022.08.05 | 추천 0 | 조회 45
sky3**** 2022.08.05 - 45
40896 함수/공식
New 고급11강- 필터 함수 공부중 입니다 엑셀파일 (2) 답변완료
세레나 | 2022.08.05 | 추천 0 | 조회 39
세레나 2022.08.05 - 39
40895 VBA
New Get_DB 전체 행이 불러와지지 않습니다 엑셀파일첨부파일 (1)
claire | 2022.08.05 | 추천 0 | 조회 37
claire 2022.08.05 - 37
40892 기능/도구
New 엑셀 셀에 달력 넣기 첨부파일 (1) 답변완료
포에버하윤둥이 | 2022.08.05 | 추천 0 | 조회 41
포에버하윤둥이 2022.08.05 - 41
40889 함수/공식
New 엑셀 여러열 일치하는 값 대입 엑셀파일첨부파일 (5)
| 2022.08.05 | 추천 0 | 조회 46
2022.08.05 - 46
40887 VBA
New vba combobox에 목록이 처음 들어 갔을 때 안 떠요 엑셀파일첨부파일 (2) 답변완료
ehfkdpah**** | 2022.08.05 | 추천 0 | 조회 27
ehfkdpah**** 2022.08.05 - 27