Vba 如果范围包含任何值,则对活动行中的单元格范围进行数据验证

Vba 如果范围包含任何值,则对活动行中的单元格范围进行数据验证,vba,Vba,我有一个带有语言id复选框的用户表单。选中该复选框后,将填充工作表“输出”上的一个单元格。代码如下: Private Sub btnSubmit_Click() Sheets("output").Activate NextRow = Application.WorksheetFunction.CountA(Range("A:A")) + 1 If cbxEnUs Then Cells(NextRow, 3) = "3 - en-us" If cbxFr Then Cells(

我有一个带有语言id复选框的用户表单。选中该复选框后,将填充工作表“输出”上的一个单元格。代码如下:

Private Sub btnSubmit_Click()

Sheets("output").Activate

NextRow = Application.WorksheetFunction.CountA(Range("A:A")) + 1
    If cbxEnUs Then Cells(NextRow, 3) = "3 - en-us"
    If cbxFr Then Cells(NextRow, 4) = "3 - fr"
    If cbxIt Then Cells(NextRow, 5) = "3 - it"

Sheets("input").Activate
我想将以下数据验证(来自录制的宏)应用于接收值的每个单元格

With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation, _
    Operator:=xlBetween, Formula1:="3 - en-us,2 - en-us,1 - en-us"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = "Incorrect value"
    .InputMessage = "3 = action req'd" & Chr(10) & "2 = in progress" & Chr(10) & "1 = complete"
    .ErrorMessage = "Please review valid input values" & Chr(10) & "and try again"
    .ShowInput = True
    .ShowError = True
End With

如何连接这两段代码?

将第二段代码与第一段代码合并,用
单元格(NextRow,3)
等替换第一行上的
选择

您需要跨行拆分IF语句:

If cbxEnUs Then 
    Cells(NextRow, 3) = "3 - en-us"
    ' apply validation to this cell
    With Cells(NextRow, 3).Validation
        'etc..
    End With
End if    'etc..

将第二个代码与第一个代码合并,将第一行的
选择
替换为
单元格(NextRow,3)
,等等

您需要跨行拆分IF语句:

If cbxEnUs Then 
    Cells(NextRow, 3) = "3 - en-us"
    ' apply validation to this cell
    With Cells(NextRow, 3).Validation
        'etc..
    End With
End if    'etc..

哈-很简单!谢谢,正是我想要的。哈-很简单!谢谢,正是我想要的。