gpt4 book ai didi

Excel Validation.Add 在 MS Word VBA 中不起作用

转载 作者:行者123 更新时间:2023-12-04 20:56:39 24 4
gpt4 key购买 nike

我有一个 MS Word 文档,它生成一个 Excel,其中填充了 Word 文档中表格中的数据。 Word 表格的 Excel 版本旨在作为一个 list 。因此,我正在尝试向生成的 excel 添加功能以使其更有用。我尝试添加条件格式(如果该行标记为完成,则使该行变为绿色)和验证(因此 Completed 列有一个带有是或否的下拉菜单)。我可以使两者都在 Excel 中工作,但无法从 Word 获取 VBA 以将功能添加到生成的 Excel。

在这两种情况下, .Add 方法似乎都导致了问题。我尝试了两种语法来做到这一点:

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

返回错误“excel runtime error '1004' application-defined or object-defined error”,没有用


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

返回错误“预期:=”。当我将 Validation 设置为 var 时,它会给我一个类型未匹配错误。我将 var 作为对象进行了 DIMed。

我无法使用 MS Word VBA 工作。有谁知道如何从 Word VBA 中引用 Excel .Add 方法?

最佳答案

在 friend 的帮助下,我能够修改第二种语法以使其正常工作。

使用:

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

Word VBA 需要返回值。如果将“Call”添加到该行的开头或从 .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")

关于Excel Validation.Add 在 MS Word VBA 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46327523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com