2016-11-21 2 views
1

Ich versuche, Datenvalidierung in ein Excel-Arbeitsblatt-Bereich mit xlwings hinzuzufügen:xlwings range.api.validation.add wirft 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) 

, wenn ich das laufen, stoppt er in der letzten Zeile mit Fehler:

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

die Fehlernummer -2146827284, von dem, was ich gelesen habe, scheint ein allgemeiner „Name nicht gefunden“ Fehler. VBA funktioniert gut mit diesem:

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

Was mache ich falsch?

Antwort

3

Ich denke, Ihr Problem kommt von der Weitergabe von None an das zweite und dritte Argument der add Methode. Die überarbeitete Zeile unten arbeitete für mich.

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

Ich habe endlich Zeit, dies zu überprüfen und es funktioniert, danke! – sanzoghenzo