Microsoft Excel에서 VBA를 사용하여 빈 셀을 무시 검증 목록
이 기사에서는 워크 시트의 선택 변경 이벤트를 사용하여 빈 값을 무시하고 유효성 검사 목록을 만듭니다.
원시 데이터는 제품 이름과 A 열의 일부 빈 셀로 구성됩니다.
빈 셀을 무시하고 제품 이름에 대한 유효성 검사 목록을 만들려고합니다.
논리 설명
이 기사에서는 워크 시트의 선택 변경 이벤트를 사용하여 셀 I12에서 유효성 검사를 생성했습니다. 먼저 빈 셀을 무시하고 쉼표로 구분 된 모든 제품 이름으로 구성된 문자열을 만듭니다. 그런 다음 셀 유효성 검사를 위해이 문자열을 추가합니다.
코드 설명
IntLastRow = .Cells (Rows.Count, 1) .End (xlUp) .Row 위 코드는 마지막 셀의 행 번호를 가져 오는 데 사용됩니다.
If Not IsEmpty (.Cells (IntRow, 1)) Then ‘첫 번째 열에서 공백이 아닌 값 연결 Txt = Txt & .Cells (IntRow, 1) & “,”
End If 위 코드는 빈 셀을 무시하고 제품 이름 문자열을 만드는 데 사용됩니다.
With Range ( “I12”). Validation ‘Deleting any previous validation from the cell .Delete’Adding the validation .Add _ Type : = xlValidateList, _ AlertStyle : = xlValidAlertStop, _ Operator : = xlBetween, _ Formula1 : = Txt End With 위 코드는 셀 I12에 유효성 검사를 할당하는 데 사용됩니다.
아래 코드를 따르세요
Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Declaring variables Dim IntRow As Integer, IntLastRow As Integer Dim Txt As String With Worksheets("Main") 'Finding the row number of last cell IntLastRow = .Cells(Rows.Count, 1).End(xlUp).Row 'Looping from 10th row to Last row For IntRow = 10 To IntLastRow 'Creating text for validation list If Not IsEmpty(.Cells(IntRow, 1)) Then 'Concatening non blank values in the first column Txt = Txt & .Cells(IntRow, 1) & "," End If Next IntRow End With Txt = Left(Txt, Len(Txt) - 1) 'Adding validation to cell I12 With Range("I12").Validation 'Deleting any previous validation from the cell .Delete 'Adding the validation .Add _ Type:=xlValidateList, _ AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, _ Formula1:=Txt End With End Sub
이 블로그가 마음에 들면 Facebook 및 Facebook에서 친구들과 공유하십시오.
여러분의 의견을 듣고 싶습니다. 작업을 개선하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]로 문의 해주세요