programing

VBA를 사용하여 셀에 데이터 검증을 추가하는 방법

bestprogram 2023. 4. 12. 23:06

VBA를 사용하여 셀에 데이터 검증을 추가하는 방법

VBA를 사용하여 셀(가변수)에 "데이터 검증"을 추가하고 데이터 검증 목록에 포함될 범위도 가변적입니다.나는 지금까지 이것을 사용해 왔다.

여기서 "range1"은 데이터 유효성 검사 목록에 포함될 범위이며 "rng"는 데이터 유효성 검사를 원하는 셀입니다.

Dim range1, rng As range
Set range1 = range("a1:a5")
Set rng = range("b1")
With rng
With .Validation
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="range1"
End With
End With

"애플리케이션 정의 오류 및 객체 정의 오류"가 표시됨

또한 누가 나에게 다른 주장의 의미를 설명해 줄 수 있나요?

With .Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="range1"

다음 항목 사용:

Dim ws As Worksheet
Dim range1 As Range, rng As Range
'change Sheet1 to suit
Set ws = ThisWorkbook.Worksheets("Sheet1")

Set range1 = ws.Range("A1:A5")
Set rng = ws.Range("B1")

With rng.Validation
    .Delete 'delete previous validation
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Formula1:="='" & ws.Name & "'!" & range1.Address
End With

주의: 를 사용하고 있는 경우는,Dim range1, rng As range,오직.rng타입이 있다Range,그렇지만range1Variant그래서 쓰고 있어요.Dim range1 As Range, rng As Range.
읽을 수 있는 파라미터의 의미에 대해서는 MSDN입니다.단, 다음과 같습니다.

  • Type:=xlValidateList검증 유형을 의미합니다.이 경우 목록에서 값을 선택해야 합니다.
  • AlertStyle:=xlValidAlertStop는 검증 시 표시되는 메시지박스에 사용되는 아이콘을 지정합니다.사용자가 목록에서 벗어난 값을 입력하면 오류 메시지가 나타납니다.
  • 당신의 원래 코드로,Operator:= xlBetween이상하다.검증을 위해 두 가지 수식이 제공된 경우에만 사용할 수 있습니다.
  • Formula1:="='" & ws.Name & "'!" & range1.Address리스트 데이터 검증에서는 값이 포함된 리스트의 주소를 제공합니다(형식).=Sheet!A1:A5)

언급URL : https://stackoverflow.com/questions/22956604/how-to-add-data-validation-to-a-cell-using-vba