Добрый день всем,См именованный диапазон от значения ячейки в For Loop
Я немного ржавый на моей VBA, так как я перешел на программирование на других языках, так что я надеялся, что кто-то сможет помочь меня.
Что я Привязав делать
У меня есть два листа. Одна из них - это страница формы, которую заполняют пользователи, другая (Sheet1 .... я ее не называл) - это в основном страница данных.
Внутри Sheet1 У меня есть таблица, которая показывает 1 или 0 в зависимости от того, имеет ли диапазон в форме определенный выбор. Два столбца над значением ячейки определяют диапазон, для которого требуется входное сообщение. Предполагается, что Macro найдет все элементы 1, найдите именованный диапазон, содержащий два столбца и введя именованный диапазон. К сожалению, я продолжаю получать ошибку, связанную с Application или Object Defined. Мой код ниже:
PcentData = Sheets("Sheet1").Range("PcentData").Value
If PcentData > 0 Then
For Each pCell In Sheets("Sheet1").Range("PcentSwitch")
If pCell.Value = 1 Then
With Sheets("Payment-Deduction Form").Range(Cells(pCell.Row, pCell.Column + 2)).Validation 'Error here
.Add Type:=xlValidateInputOnly
.InputTitle = "Test"
.InputMessage = "Test"
End With
End If
Next pCell
End If
EDIT:
мне удалось обеспечить код тянет именованный диапазон от правильного листа, определив строку с именем NamedRange и с его равным старое с заявлением, указывая на правильный лист.
Dim NamedRange As String
PcentData = Sheets("Sheet1").Range("PcentData").Value
If PcentData > 0 Then
For Each pCell In Sheets("Sheet1").Range("PcentSwitch")
If pCell.Value = 1 Then
NamedRange = Sheets("Sheet1").Cells(pCell.Row, pCell.Column + 2).Value
MsgBox (Sheets("Sheet1").Cells(pCell.Row, pCell.Column + 2).Value)
With Sheets("Payment-Deduction Form").Range(NamedRange)
If .Validation Then .Validation.Delete
.Validation.Add /* Error Here */ Type:=xlValidateInputOnly
.InputTitle = "Test"
.InputMessage = "Test"
End With
End If
Next pCell
End If
К сожалению, я получаю сообщение об ошибке. Объект не поддерживает это свойство или метод в разделе If .validation.
Пробуйте: «С листами (« Форма вычета платежей »). Диапазон (листы (« Форма вычета платежей »). Ячейки (pCell.Row, pCell.Column + 2)). Validation' – Vityata
Еще получить та же ошибка в той же строке, хотя я могу понять, почему это могло помочь. Было бы лучше иметь это в модуле, а не в листе? – JaayB
Можете ли вы попробовать: «С листами (« Форма вычета платежей »). Ячейки (pCell.Row, pCell.Column + 2)). – Vityata