在“分页”后保留原始表格格式

所以这是完成的产品,带有工作对账单的账目报表和老化分析:

会计报表样本

一切都很好。 它基本上是用来自另一个表的数据逐行填充的。 这里是示例代码:

j = 21 'First row on the statement of accounts workbook For k = 1 To TSOA.ListRows.Count 'TSOA is the original data table If Not TSOA.DataBodyRange.Rows(k).Hidden Then 'excludes the filtered entries SOAwb.Worksheets(1).Cells(j, 4) = TSOA.DataBodyRange(k, 6) 'Debit SOAwb.Worksheets(1).Cells(j, 5) = TSOA.DataBodyRange(k, 7) 'Credit SOAwb.Worksheets(1).Cells(j, 1) = TSOA.DataBodyRange(k, 3) 'Date <some other similar code goes here> j = j + 1 'forces next row If (j + 4) Mod 50 = 0 Then 'Increase footer, since there are only 50 rows in a page j = j + 12 'Increase header End If End If Next 

所以我使用下面这行代码来进行“有点”的dynamic分页:

 If (j + 4) Mod 50 = 0 Then j = j + 12 'Increase header End If 

其中(j + 4)是页脚分页的触发器,Mod 50将(j + 4)除以50,并给你余数。 因此,如果它是完全可分的,结果= 0. j + 12有助于跳过标题标识,那么您将会明白为什么在下一张图片中。

所以如果你不关心后面的表格格式,那么这行代码基本上可以工作:> <

在其他页面上的表格格式不正确

那么有谁知道我该如何继续前面的表格格式,即第二页原始页面中的绿色和白色语句表? 还是有一些方法来预加载第二页中的表格格式(请记住并非所有的语句都需要第二页)。 或者甚至可以在分页符触发时修改打印设置? 还是其他创意解决scheme?

我已经没有使用VBA处理多个页面的经验,坦率地说,我甚至不知道如何去浏览页面。 我不能强调这个代码是我的业余尝试,用excel来做有用的事情,所以必须有改进的余地!

只是改变页边距,排除前几行,但手动分页仍然是必需的!