背景:我创建了一个 Word 模板,其中包含一个例程,该例程创建一个数组,该数组在第一维中保存项目标题,在第二维中保存目标标题。该数组被转换为 Excel 中的表格,用于创建时间线/甘特图。
问题:转置将数组信息适当地放入 Excel 表中,并根据需要扩展该表的大小。单元格 B5 是 DataBodyRange 的开始,也是我要粘贴数组信息的位置的开始。
' paste headings from array into excel
xlWS.Range("B5:C" & UBound(gHeadings, 2)) = xlApp.Transpose(gHeadings)
没有以正确方式出现的是表格中的后续数据单元格。时间线单元格具有以下公式:
=IF(AND(COLUMNS($H$5:H10)>=$E5,COLUMNS($H$5:H10)<=$F5),IF(COLUMNS($H$5:H10)-$E5<ROUND(($F5-$E5+1)*$G5,0),fillblock,""),"")
转置完成后,包含引用公式的单元格行在作为 DataBodyRange 的原始最后一行的表格行上出错。在该行第 10 行,公式从上面显示的内容更改为:
=IF(AND(COLUMNS($H$5:H119)>=$E10,COLUMNS($H$5:H119)<=$F10),IF(COLUMNS($H$5:H119)-$E10<ROUND(($F10-$E10+1)*$G10,0),fillblock,""),"")
对为什么会发生这种情况以及如何预防有任何想法或理解?