2017-09-20 178 views
2

我有一個MS Word文檔,它生成一個Excel,其中包含Word文檔中的表格中的數據。 Word表格的Excel版本旨在成爲一個清單。因此,我試圖爲生成的Excel添加功能,以使其更加有用。我嘗試添加條件格式(如果行標記爲完成,則使行成爲綠色)和驗證(因此「已完成」列的下拉列表爲「是」或「否」)。我可以讓這兩個工作在Excel中,但不能從Word中獲取VBA以將功能添加到生成的Excel中。Excel Validation.Add無法從MS Word VBA工作

在這兩種情況下.Add方法似乎導致問題。我試圖2個語法做到這一點:

With objNewExcel.Sheets(1).Range("e5").Validation 
    .Add Type:=xlValidateWholeNumber, _ 
     AlertStyle:= xlValidAlertStop, _ 
     Operator:=xlBetween, _ 
     Formula1:="5", _ 
     Formula2:="10" 
    .InputTitle = "Integers" 
    .ErrorTitle = "Integers" 
    .InputMessage = "Enter an integer from five to ten" 
    .ErrorMessage = "You must enter a number from five to ten" 
End With 

返回錯誤「練成運行時錯誤‘1004’的應用程序定義或對象定義的誤差」,這是沒有用的

objNewExcel.Sheets(1).Range("e5").Validation.Add(xlValidateWholeNumber, xlValidAlertStop, xlBetween, "5", "10") 

返回錯誤「預期:=」。當我將驗證設置爲var時,它會給我一個類型錯誤匹配錯誤。我將var作爲對象進行了DIM。

我不能從MS Word VBA中工作。有誰知道如何引用Word VBA中的Excel .Add方法?

回答

0

在朋友的幫助下,我能夠修改第二種語法來工作。

使用:

objNewExcel.Sheets(1).Range("e5").Validation.Add (xlValidateWholeNumber, xlValidAlertStop, xlBetween, "5", "10") 

字VBA需要一個返回值。如果您將「調用」添加到行的開頭或從.Add方法中刪除「(」和「)」,VBA知道沒有返回並且它可以工作。

工作語法的:

objNewExcel.Sheets(1).Range("e5").Validation.Add xlValidateWholeNumber, xlValidAlertStop, xlBetween, "5", "10" 

Call objNewExcel.Sheets(1).Range("e5").Validation.Add (xlValidateWholeNumber, xlValidAlertStop, xlBetween, "5", "10")