背景: 最初の次元にプロジェクトのタイトルを、2 番目の次元に目標のタイトルを保持する配列を作成するルーチンを含む 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,""),"")
なぜこれが起こるのか、そしてそれを防ぐ方法についての考えや理解はありますか?