이 기사에서는 워크 시트의 선택 변경 이벤트를 사용하여 빈 값을 무시하고 유효성 검사 목록을 만듭니다.

원시 데이터는 제품 이름과 A 열의 일부 빈 셀로 구성됩니다.

ArrowMain

빈 셀을 무시하고 제품 이름에 대한 유효성 검사 목록을 만들려고합니다.

ArrowRawData

논리 설명

이 기사에서는 워크 시트의 선택 변경 이벤트를 사용하여 셀 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]로 문의 해주세요