所以,这里是成品,带有工作声明表的账目报表,以及老化分析:
一切都很好。它基本上用另一个表中的数据逐行填充。以下是示例代码:
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
所以我在某种程度上编码了#39;动态分页,使用代码行:
If (j + 4) Mod 50 = 0 Then
j = j + 12 'Increase header
End If
其中(j + 4)是页脚分页的触发器,Mod 50将(j + 4)除以50并给出余数。因此,如果它完全可分,结果= 0。 j + 12有助于跳过标题徽标,您将在下一张图片中了解原因。
因此,如果您不关心后续的表格格式,那么代码行基本上有效:&gt;&lt;
所以有人知道如何继续使用上一个表格的格式,即第二页原始页面中的绿色和白色语句表吗?或者是否有某种方法可以在第二页中预加载表格格式(请记住,并非所有语句都需要第二页)。或者甚至可能在分页触发时修补打印设置?或任何其他创意解决方案?
我没有使用VBA处理多个页面的经验,坦率地说,我甚至不知道如何在页面之间进行导航。我不能足够强调这个代码是我的业余尝试用excel做有用的东西,所以必须有改进的余地!
答案 0 :(得分:1)
只需更改页边距并排除前几行,但仍需要手动分页!