1. FAQ
  2. 엑셀(Excel)
  3. AfterEffects
  4. Premiere
  5. Photoshop
  6. ETC

이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.

엑셀 다른파일 비교하기 2

VBA 조회 수 4197 추천 수 0 2012.08.23 16:06:34

안녕하세요. 아별님 파이스입니다!


그간 폭염같은 무더위에 이어

이제는 질릴것 같은 빗줄기까지... 잘 지내고 계셨나요?


오늘은 지난번에 드렸던 질문의 확장판(?) 같은 것인데요,

우선 지난번에 가르쳐 주신 다음과 같은 프로시져가 있습니다.


Option Explicit

Sub compareSheets()

    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim r As Long, c As Long
    Dim maxr As Long, maxc As Long
    Dim diff As Long

    Set ws1 = Sheets(1)
    Set ws2 = Sheets(2)

    maxr = ws1.UsedRange.SpecialCells(xlLastCell).Row
    maxc = ws1.UsedRange.SpecialCells(xlLastCell).Column

    diff = 0
    For r = 1 To maxr
        For c = 1 To maxc
            If ws1.Cells(r, c).Formula <> ws2.Cells(r, c).Formula Then
               diff = diff + 1
               ws1.Cells(r, c).Interior.ColorIndex = 3
               ws2.Cells(r, c).Interior.ColorIndex = 3
            End If
        Next c
    Next r

    MsgBox "다른셀의 개수 :" & diff

End Sub


위의 내용은 서로다른 두시트를 비교하는 내용으로,


7, 8행 의

Set ws1 = Sheets(1)
Set ws2 = Sheets(2)

부분을


Set ws1 = workbook(1).Sheets(1)
Set ws2 = workbook(2).Sheets(1)

로 변형하기도 하면서 잘 쓰고 있었는데요,


갑자기 이런 상황이 발생한 것입니다.

각각 시트가 10개 이상인 2개의 엑셀파일(워크북)을 통채로 비교하려면 어떻게 해야되지???

저는 순간 멍해지면서 이리저리 수정 해보기 시작했습니다.


위의 7,8행을

Set ws1 = workbook(1)
Set ws2 = workbook(2)

으로도 고쳐보고


Set ws1 = workbook(1).Sheets(1)&Sheets(2)&Sheet(3)......
Set ws2 = workbook(2).Sheets(1)&Sheets(2)&Sheet(3)......

으로도 고쳐보고


3행의 ws1 지정도 workbook으로 바꾸어보고 해봤으나...


아쉽게도 모두 작동하지 않았습니다. ㅠ.ㅠ


위와 같은 상황에서 한수 가르침을 청하겠습니다.

편안한 하루 보내십시오.


댓글 '2'

profile

[레벨:30]아별

2012.08.28 23:53:48
*.130.73.75

파이스님..

VBA의 기본 개념 부터 다시 공부해보실 것을 권해드립니다.

책을 한권 사서 엑셀의 개체 모델부터 찾아보세요..

 

Application이 최 상위고..

Workbook 다음에 WorkSheet 그리고 맨 하단이 Range입니다.

 

시트가 각각 10개인 웍북을 비교하려면 어떻게 하겠습니까?

set wb1 = workbooks(1)

set wb2 = workbooks(2)

라고 각각의 웍북을 정의해주고요..

 

for i = 1 to wb1.Sheets.count

      ' 이 안에 각각의 웍크시트를 비교해주는 기능이 필요하겠죠?

      if wb1.sheets(1).cells(1,1) = wb2.sheets(i).cells(1,1) then

             '셀에 체크..

      End If

next i

 

위 수식에서 cells안의 (1,1) 질문 올리신 글의 r과c에 대응해서 변경해보시기 바랍니다.

 

일단 이정도만 팁을 드려봅니다.

물고기를 잡는 방법을 알려드리는 심정으로 댓글 달아봤습니다.

 

 

그냥 잡아드리는게 좋을까요?

답변을 달면서 항상 하는 고민입니다.

 

즐거운 하루 되세요.. ^^

[레벨:6]파이스

2012.09.14 15:47:15
*.39.170.193

넵 답변이 늦었습니다. 죄송합니다.

확실히 물고기를 잡아보고 다시 글 남기도록 하겠습니다 + +

친절하고 자세한 답변 감사합니다!

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 공지 [공지] 아별닷컴의 엑셀 질문방 폐쇄합니다. 카페 질문방 이용하세요.. imagefile [레벨:30]아별 2015-04-23 62602
442 VBA 특정폴더 파일 실행 file [4] [레벨:4]고수가되고파 2012-11-22 4176
441 셀서식(표시형식) 다른 시트에서 조건을 만족하면 해당시트 셀에서 색칠하거나 글씨 표시하기 file [2] [레벨:4]성투은자 2013-04-02 4179
440 엑셀일반 2010 엑셀로 작업 2003엑셀 시트 복사가 안되요 [1] [레벨:2]리자딘 2011-12-09 4186
439 완전 초보자가 볼수있는 책 [1] [레벨:1]오늬맘 2009-07-08 4193
438 엑셀수식 중복된 행을 묶으면서 값은 합치는 내용 file [1] [레벨:1]여엉 2012-10-19 4197
» VBA 엑셀 다른파일 비교하기 2 [2] [레벨:6]파이스 2012-08-23 4197
436 배열수식 수식에 대해 문의드려요! file [2] [레벨:1]예진 2013-03-07 4202
435 MATCH 두가지 조건을 만족시키려면 _ MATCH함수 응용 [1] [레벨:1]탐크루즈 2013-03-14 4209
434 아별님 [1] [레벨:2]윙윙 2010-04-05 4213
433 VLookup 하 ~.~ vlookup 이여 _ VLOOKUP과 MATCH 활용하여 값 불러오기 file [11] [레벨:3]빛의행운아 2012-02-28 4219
432 엑셀에서 실생활에필요한 함수알고자"" [1] [레벨:1]알고파 2010-09-04 4228
431 엑셀일반 하위레벨 분류 표시 file [4] [레벨:3]읍내꽃미남 2013-02-20 4228
430 VBA vba 등록질문하겟습니다. file [6] [레벨:4]신강현 2013-02-02 4235
429 엑셀에서 선을 연장하고 싶어요.. [4] [레벨:2]만쥬 2010-12-14 4244
428 엑셀일반 행 및 열입력시 중복 방지 하는법 imagefile [3] [레벨:6]파이스 2012-05-10 4244
427 VBA 엑셀에서 웹페이지 종료하는 방법 [3] [레벨:1]sd99 2013-05-19 4247
426 VBA 같은데이타 병합 file [2] [레벨:4]고수가되고파 2013-01-21 4258
425 엑셀일반 질문...^^ _ 선택 영역에서 빈셀만 모두 선택하여 특정 문자로 채우는 방법 [3] [레벨:4]나카타 2011-11-28 4260
424 아별님 질문이 있습니다. [2] 흑천황 2009-07-16 4265
423 VBA 혹시 어떤 문서에서 특정 단어를 추출하는 것이 가능할까요? [2] [레벨:1]하얀모래 2014-02-25 4265