Vba 以编程方式添加自定义文档属性的过程错误无效

Vba 以编程方式添加自定义文档属性的过程错误无效,vba,excel,properties,runtime-error,Vba,Excel,Properties,Runtime Error,我正在尝试使用VBA将自定义文档属性添加到另一个子系统正在创建的新工作簿中。我希望我的代码将该属性添加到活动工作簿中。最终目标是SharePoint在上载工作簿时读取这些属性(到目前为止工作正常) 我正在尝试下面的代码,但运气不好,一直出现错误“无效的过程调用或参数” 单据属性名称=“零件号” 链接到Content=True Doc属性类型=msoPropertyTypeString Value=“partnumbermatadata”(我的工作簿中的命名范围) 有人能解释一下我做错了什么吗?您

我正在尝试使用VBA将自定义文档属性添加到另一个子系统正在创建的新工作簿中。我希望我的代码将该属性添加到活动工作簿中。最终目标是SharePoint在上载工作簿时读取这些属性(到目前为止工作正常)

我正在尝试下面的代码,但运气不好,一直出现错误“无效的过程调用或参数”

单据属性名称=“零件号”

链接到Content=True

Doc属性类型=msoPropertyTypeString

Value=“partnumbermatadata”(我的工作簿中的命名范围)


有人能解释一下我做错了什么吗?

您的参数不正确

基本上:

  • 如果
    LinkToContent
    =
    True
    ,则需要
    LinkSource
    参数

  • 如果
    LinkToContent
    =
    False
    ,则需要
    Value
    参数

语法:
价值
value
属性的数据值(如果未链接到容器文档的内容)。将转换该值以匹配类型参数指定的数据类型,如果无法转换,则会发生错误

如果
LinkToContent
True
,则忽略参数
,并为新文档属性指定默认值,直到容器应用程序更新链接属性值(通常在保存文档时)


链接源 如果
LinkToContent
False
属性的
LinkSource
源,则忽略。容器应用程序确定可以使用哪些类型的源链接

例如,DDE链接使用
Server |文档!项目
语法



有关详细信息,请参阅。

如果您的代码正在处理多个工作簿,则
ActiveWorkbook
可能不是您所期望的。你证实了吗?(验证的一种方法是在该子系统的某个地方添加
MsgBox ActiveWorkbook.Name
)我个人会将工作簿作为参数传递到子系统中。这样我就可以确保它引用的是正确的工作簿(并使sub灵活地重复使用,如果需要的话)谢谢!这就是我问题的答案!
ActiveWorkbook.CustomDocumentProperties.Add "Part Number", True, _
    msoPropertyTypeString, "PartNumberMetadata.Value"
ActiveWorkbook.CustomDocumentProperties.Add (Name, LinkToContent, [Type], _
    [Value], [LinkSource])