Я был с этим со вчерашнего дня, но, похоже, не нашел своего пути.Excel VBA - Передача правильных аргументов в процедуры
В приведенной ниже процедуре я создаю объект. dropdownRange для передачи в качестве аргумента в процедуру внизу. Однако оба аргумента выводятся пустым в «ближайшее окно», когда я отлаживаю их.
Я не получаю ошибку на линии -> С curCell.Validation, однако, я получаю следующее сообщение об ошибке на следующей строке -> .Add Тип ...
Ошибка: 1004: Application- или объекта определяется ошибка
Dim mainTab As Object 'Tab 'main'
Dim tranTypeSize As Integer 'Length of entries for transaction type
Dim dropdownRange As Range 'Dynamic range for dropdown
Set mainTab = Sheets("Main")
tranTypeSize = Sheets("Misc").Cells(Rows.Count, 1).End(xlUp).Row
Set dropdownRange = Sheets("Misc").Range("A1:A" & tranTypeSize) ' <- problem
Call createDropdownList(mainTab.Range("G8"), dropdownRange) '<- arguments passed are wrong obj?
----------------------------------------------------------------
Sub createDropdownList(ByRef curCell As Range, _
ByVal targetList As Range)
With curCell.Validation ' <- I think error, though it passes this line
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=targetList ' <- error
***** UPDATE: ***** в дополнение к @ ExcelDeveloper свой комментарий, я пытаюсь следующие, я думаю, что близко, но до сих пор не работает (ошибка: ошибка приложения или объекта) Sub createDropdownList (ByRef curCell As Range, _ ByVal TargetList Как Range)
Dim targetAddress As String
targetAddress = "Misc!" & targetList.Address
Debug.Print targetAddress
With curCell.Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=targetAddress
вы пытались использовать записи макросов, чтобы проверить код для метода 'validaton.add' – psychicebola
Да, я записал, затем скопировал и отредактировал 'targetList' в качестве своего диапазона – Kayote
. Я нашел аналогичную проблему в stackoverflow, может быть, это тоже может вам помочь: http://stackoverflow.com/questions/6786540/vba-excel-codecannot-give-named-range-to-formula1-in-validation – psychicebola