错误:未定义属性让过程,属性获取过程未返回对象vba这是相关代码:
namespace Entities
{
[Guid("E65658F2-67C4-4F86-890C-62517EFB19AC")]
[ComVisible(true)]
public interface IFieldTags
{
[DispId(-4)]
FieldTagsEnumerator GetEnumerator();
}
[Guid("472DDF54-E42D-4E6D-9D62-1507CDB2ED0A")]
[ClassInterface(ClassInterfaceType.AutoDispatch)]
[ComVisible(true)]
public class FieldTags : IEnumerable, IFieldTags
{
private List<FieldTag> fieldTagsList;
internal FieldTags(Document document, Tools tools)
{
this.constants = tools.Constants;
this.document = document;
this.fieldTagsList = GetFieldtagList();
}
IEnumerator IEnumerable.GetEnumerator()
{
return (IEnumerator)GetEnumerator();
}
public FieldTagsEnumerator GetEnumerator()
{
return new FieldTagsEnumerator(this.fieldTagsList);
}
}
public class FieldTagsEnumerator : IEnumerator
{
private readonly List<FieldTag> fieldTagsCollection;
private int position = -1;
public FieldTagsEnumerator(List<FieldTag> fieldTagsList)
{
fieldTagsCollection = fieldTagsList;
}
}
}
使用RegAsm.exe和将Entities.tlb附加到VBA生成的.tlb
在VBA中:
Dim objFieldTags As Entities.IFieldTags
// returns FieldTags type object in c#
Set objFieldTags = objDocument.GetNewRange(WordDocument.Range).FieldTags
For Each obj In objFieldTags
对于每种原因都会导致错误,这种方法正确吗?如何在循环中使用FieldTag?
我不是专家,但最近为VBA的C#词典包装器解决了此问题。