是否可以将文本字段添加到数组?

时间:2019-06-26 22:12:22

标签: vba ms-word

我已经设置了一个宏来将Word表转换为数组,但是某些单元格包含空的文本表单字段。我想知道是否有办法将这些包含在VBA阵列中?其他表具有混合的字符串和字段,这可能是一个单独的问题,我想我首先要从最简单的版本开始。

最终目标是尝试获得一个表,其中一列包含自动更正代码,另一列具有自动更正文本,以通过AutoCorrect.Entries.AddRichText自动添加到校对/自动更正。

我查看了FormField object description,因为这似乎是一个话题,并且我可以看到如何使用Add方法将字段直接插入选择区域。但这无助于将字段放入数组中。

我发现了一个enumeration for word fields,但这似乎对将字段添加到数组似乎没有用。

' ... var set up omitted

ReDim MyT(TRow - 1, TCol - 1) As Variant

' ... looping through cells of table code omitted

OCell.Select
If Selection.Fields.Count > 0 Then
    MyT(A, B) = wdFieldFormTextInput 
Else
    MyT(A, B) = Selection.Text
End If

我有一个更高版本的函数来显示数组,但对于上面的代码,它只是将wdFieldFormTextInput的枚举值包含在70中,这是有道理的,但绝对不是我想要的。

2 个答案:

答案 0 :(得分:0)

这将通过将其添加到const convert = (str) => str.split(', ') .flatMap(s => { if(!s.includes('–')) return +s; const [min, max] = s.split('–'); return Array.from({ length: max - min + 1 }, (_, n) => n + +min); }); var number_string = "7, 20, 22, 30–31, 33, 39–40, 46"; var result = convert(number_string, '–'); console.log(result);集合中来创建新的FormField,并将新的FormFields添加到数组FormField中。

a

这是您想要做的吗?

答案 1 :(得分:0)

如果您只是在字段文本后面,则可以使用:

ActiveDocument.Range.TextRetrievalMode.IncludeFieldCodes = False

请参阅:https://docs.microsoft.com/en-us/office/vba/api/word.textretrievalmode