Я пытаюсь динамически добавлять validation
(используя DataValidation: List) в диапазоны на листе. Я записал макрос, который произвел следующий код:Excel VBA - Референтный диапазон с использованием ячеек
With Worksheets("Clusters").Range("C2:C100").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Managers"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Это работает нормально для статического диапазона C2: C100, но столбец не может быть всегда C. Я иметь переменную cMANFCM, которая содержит столбец номер. Я пытался изменить код, чтобы использовать это:
With Worksheets("Clusters").Range(Cells(2,cMANFCM), Cells(100, cMANFCM)).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Managers"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Почему это не работает и как это исправить?
Try 'с Таблицах ("Кластеры") Range ("A2: A100"). Offset (cMANFCM, -1) .Validation' –
или 'Worksheets (« Кластеры »). Ячейки (2, cMANFCM) .Resize (100,1)' –
'Ячейки()' без квалификации (например, «sht.Range (Ячейки (1,1),« Ячейки »(100,1)), вы должны использовать' sht.Range (sht.Cells (1, 1), sht.Cells (100,1)) ' –