2016-11-21 5 views
1

Я пытаюсь добавить проверку данных в диапазоне рабочего листа Excel с помощью xlwings:xlwings range.api.validation.add бросает com_error -2146827284

def set_validation(rng): 
    """Add data validation to the given range""" 
    rng.value = "linear_benefit" 
    rng.api.validation.delete() 
    # xlValidateList = 3 
    rng.api.validation.add(3, None, None, 
     "linear_benefit,linear_cost,sigmoid_benefit,sigmoid_cost", None) 

, когда я запускаю это, он останавливается на последней строке с ошибка:

com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146827284), None) 

ошибка номер -2146827284, от того, что я читал, кажется, общее «имя не найден». VBA отлично работает с этим:

rng.Validation.Add Type:=3, _ 
    Formula1:="linear_benefit,linear_cost,sigmoid_benefit,sigmoid_cost") 

Что я делаю неправильно?

ответ

3

Я думаю, что ваша проблема связана с передачей None во второй и третий аргументы метода add. Пересмотренная строка ниже работала для меня.

rng.api.Validation.add(3,1,3,"linear_benefit,linear_cost,sigmoid_benefit,sigmoid_cost") 
+0

У меня есть время, чтобы проверить это, и это работает, спасибо! – sanzoghenzo