2013-07-02 1 views
1

У меня есть пользовательская форма с флажками для идентификатора языка. При проверке заполняется ячейка на рабочем листе. Вот код:Проверка данных для диапазона ячеек в активной строке, если диапазон содержит любое значение

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 

Как подключить эти два кода?

ответ

1

Объединить второй код с первым, заменив Selection на первую линию с Cells(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.. 
+0

Ha - очень просто! Спасибо, только то, что я хотел. – halcyon27

Смежные вопросы