我已经设置了一个宏来将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中,这是有道理的,但绝对不是我想要的。
答案 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