VBA를 사용하여 Excel에서 두 통합 문서의 사용자 이름을 비교해야합니다. 어떻게하면됩니까? 통합 1에서 두 개의 다른 통합 문서에서 문자열 비교
- 가 : 열 A는 통합 2 10 명
- 포함되어 예를 들어
열 A는 I 칼럼 B의 셀을 가질 필요가 10 명
포함 각 통합 문서는 경기에 따라 녹색 또는 빨간색으로 표시됩니다.
VBA를 사용하여 Excel에서 두 통합 문서의 사용자 이름을 비교해야합니다. 어떻게하면됩니까? 통합 1에서 두 개의 다른 통합 문서에서 문자열 비교
열 A는 I 칼럼 B의 셀을 가질 필요가 10 명
포함 각 통합 문서는 경기에 따라 녹색 또는 빨간색으로 표시됩니다.
나는이 같은 것을 의미한다고 생각하지만 항상 신중해야합니다. 아래 코드는 작동하지만 범위를보다 동적으로 설정하려고 할 것입니다.
Option Explicit
Sub Compare_Names()
Dim oBook_1 As Excel.Workbook
Dim oBook_2 As Excel.Workbook
Dim oRange_1 As Range
Dim iRange_1_Rows As Integer
Dim oRange_2 As Range
Dim iRange_2_Rows As Integer
Dim vArray As Variant
Dim vArray_Found As Variant
Dim iCnt As Integer
Dim iCnt_B As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set oBook_1 = Workbooks.Open("U:/Names_1.xls")
Set oRange_1 = oBook_1.Sheets(1).Range("A1:A5") 'Can be dynamically set when needed
iRange_1_Rows = oRange_1.Rows.Count
ReDim vArray(1 To iRange_1_Rows, 1 To 1)
vArray = oRange_1
Set oRange_1 = Nothing
oBook_1.Close
Set oBook_1 = Nothing
Set oBook_2 = Workbooks.Open("U:/Names_2.xls")
Set oRange_2 = oBook_2.Sheets(1).Range("A1:A5")
iRange_2_Rows = oRange_2.Rows.Count
For iCnt = 1 To iRange_1_Rows
For iCnt_B = 1 To iRange_2_Rows
ReDim vArray_Found(1 To iRange_2_Rows, 1 To 1)
If Trim(vArray(iCnt, 1)) = Trim(oRange_2(iCnt_B)) Then
oRange_2(iCnt_B).Interior.Color = vbGreen
vArray(iCnt_B, 1) = True
End If
Next iCnt_B
Next iCnt
For iCnt = 1 To iRange_2_Rows
If vArray(iCnt, 1) <> True Then
oRange_2(iCnt).Interior.Color = vbRed
End If
Next iCnt
Set oRange_2 = Nothing
oBook_2.Save
oBook_2.Close
Set oBook_2 = Nothing
End Sub
가 아닌 대소 문자를 구분 비교를 원하는 경우에 당신은 사용할 수 있습니다
if UCase(Trim(vArray(iCnt, 1))) = UCase(Trim(oRange_2(iCnt_B))) Then
와우, 아마도 셀의 수식을 사용하여 해결할 수 있을까요? 잘못 이해하지 마시고, 아주 좋은 예입니다. 신속하게 작성할 수있을 것이라고 확신하지만 수식이 더 유지 보수가 가능한지 궁금합니다. 이 컴퓨터에는 Excel이 없으므로 수식을 테스트 할 수는 없습니다. 예를 들어 abo 예제와 같이 생각합니다. 일할 수도 있니? –
필요에 따라 달라집니다. 주어진 코드는 자신의 요구 사항에 따라 운영자가 사용자 정의 할 수 있습니다. Excel 수식이 충분하면 그 수식을 자유롭게 사용할 수 있습니다. 그러나 위의 의견에 명시된 바와 같이, 그것은이 시점에서 불분명합니다 ... – Trace
당신이 "일치"라고, 당신은 의미합니까 통합 문서 1의 사용자 이름이 통합 문서의 열 A에 어디 나타나는지 2? 또는 통합 문서의 사용자 이름이 통합 문서 2의 똑같은 셀에있는 경우 "일치"입니까? – LittleBobbyTables
성냥은 대문자와 소문자를 고려해야합니까 아니면 중요하지 않습니까? – Trace
여기에 예제가 많이 있습니다 ([example] (http://stackoverflow.com/questions/1961996/lookup-on-another-sheet-in-excel).보세요, 질문과 쇼를 정확하게 기재하십시오. 당신이 이미 뭔가를 시도해 본다면 더 도움이 될 것입니다. – JMax