我使用Excel模板作为Sharepoint文档集中的自定义文档类型。 我有一些这种文档类型的自定义元数据,例如一个名为Priority的列表(低,中,高)。
我可以使用ActiveWorkbook.ContentTypeProperties(Property)
从文档中读取元数据。
有没有办法从文档中更改值? 我想从文档内容中获取元数据值。
答案 0 :(得分:3)
如您所述,通过ContentTypeProperties引用服务器元数据。为了让他们从doc内容中获取,我曾经创建了一个工作表函数来执行此操作,告诉您想要的元数据名称和您希望更改的值,这里是我的代码和注释 -
Public Function zSETSERVERMETADATA(ByVal metaTypeName As String, Optional ByVal newValue As String = "") As String
'Recalculate upon every time any cell changes
Application.Volatile
'Set wb pointer trough caller parents
Dim wb As Workbook, r As Range, ws As Worksheet
Set r = Application.Caller
Set ws = r.Parent
Set wb = ws.Parent
'Clear unused elements
Set r = Nothing
Set ws = Nothing
On Error GoTo NoSuchProperty
'If value defined on newValue, set the value and showoutput
If newValue <> "" Then
wb.ContentTypeProperties(metaTypeName).Value = newValue
zSETSERVERMETADATA = wb.ContentTypeProperties(metaTypeName).Value
Set wb = Nothing
Exit Function
'If no value defined on newValue only show output but leave content type unchanged
Else
zSETSERVERMETADATA = wb.ContentTypeProperties(metaTypeName).Value
Set wb = Nothing
Exit Function
End If
NoSuchProperty:
zSETSERVERMETADATA = CVErr(xlErrValue)
Set wb = Nothing
End Function
您可以像任何工作表函数一样使用它,例如,如果您想要更改名为&#34; Author&#34;重视&#34; SickDimension&#34;你用公式 -
在单元格中调用函数=zSETSERVERMETADATA("Author";"SickDimension")
顺便说一下,使用我的函数,将第二个参数留空只会返回该字段的值。