Microsoft Excel에서 VBA를 사용하여 두 개의 워크 시트 범위를 비교
이 기사에서는 두 범위를 비교하고 일치하지 않는 셀을 찾는 사용자 양식을 만듭니다.
원시 데이터는 대상 모델과 원하는 모델의 데이터로 구성됩니다. 대상 및 원하는 모델이 일치하지 않는 레코드를 찾고 싶습니다.
두 범위를 입력으로 받아들이는 사용자 양식을 만들었습니다. 이 두 범위를 비교하여 일치하지 않는 셀을 찾습니다.
제출 버튼을 클릭하면 두 범위를 비교하고 출력을 반환합니다. 일치하지 않는 셀 수를 표시하는 메시지 상자가 표시됩니다.
또한 새 통합 문서에서 일치하지 않는 셀에 대한 데이터를 제공합니다.
코드 설명
Rng1 = Range (UserForm3.RefEdit1) 설정
위 코드는 사용자 폼에서 범위 값을 가져 오는 범위 개체의 개체를 만드는 데 사용됩니다.
Rng1이 Nothing 또는 Rng2가 Nothing이면 Exit Sub 위 코드는 두 범위에 값이 포함되어 있는지 확인하는 데 사용됩니다. 범위 중 하나가 비어 있으면 프로 시저 내의 나머지 코드를 건너 뜁니다.
With Rng1 LR1 = .Rows.Count LC1 = .Columns.Count End With 위의 코드는 범위 내의 행 및 열 수를 가져 오는 데 사용됩니다.
CellValue1 = Rng1.Cells (r, c) .FormulaLocal 위 코드는 r 행과 c 열의 셀 값을 가져 오는 데 사용됩니다.
If CellValue1 <> CellValue2 Then 위 코드는 변수 CellValue1과 CellValue2의 값을 비교하는 데 사용됩니다.
아래 코드를 따르세요
Option Explicit Sub CallingUserform() UserForm3.Show End Sub 'Insert below code in userform Option Explicit Private Sub CommandButton1_Click() 'Declaring variables Dim Rng1, Rng2 As Range Dim r, DiffCount As Long, c As Integer Dim LR1 As Long, LC1 As Integer Dim CellValue1 As String, CellValue2 As String Dim NewWB As Workbook 'Getting the two range set for comparing Set Rng1 = Range(UserForm3.RefEdit1) Set Rng2 = Range(UserForm3.RefEdit2) 'Unloading the userform Unload Me 'Disabling screen updates Application.ScreenUpdating = False 'Checking whether Rng1 and Rng2 contains value If Rng1 Is Nothing Or Rng2 Is Nothing Then Exit Sub 'Getting count of number of rows and columns in Rng1 With Rng1 LR1 = .Rows.Count LC1 = .Columns.Count End With DiffCount = 0 'Adding new workbook for output Set NewWB = Workbooks.Add 'Looping through all the columns and rows in the range For c = 1 To LC1 For r = 1 To LR1 'Getting value from particular cell from both the ranges CellValue1 = Rng1.Cells(r, c).FormulaLocal CellValue2 = Rng2.Cells(r, c).FormulaLocal 'Comparing value of cell from both ranges If CellValue1 <> CellValue2 Then 'Getting count of numbers of cells with different values DiffCount = DiffCount + 1 'Adding unequal values to new workbook Cells(r, c).Value = "'" & CellValue1 & " <> " & CellValue2 End If Next r Next c 'Display count of unequal cells in both range MsgBox DiffCount & " cells contain different formulas!", _ vbInformation, "Compare Worksheet Ranges" 'Enabling screen updates Application.ScreenUpdating = True Set NewWB = Nothing End Sub
이 블로그가 마음에 들면 Facebook 및 Facebook에서 친구들과 공유하십시오.
여러분의 의견을 듣고 싶습니다. 작업을 개선하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]로 문의 해주세요