gpt4 book ai didi

excel - For...Next 在 Excel 中扩大范围

转载 作者:行者123 更新时间:2023-12-04 20:45:24 25 4
gpt4 key购买 nike

我在报告的单元格 D5:D103 中有一系列公式,这些公式链接到书中的另一张表。 A:C 列包含文本结果,D 列有 $ 金额作为结果。 A4:D4 包含数据标题,A1:D3 是描述报表的通用标题。最后一行的位置每个月都会改变,可能>103,也可能<103。

在每 16 行数据之后,我需要插入从工作表中的命名范围粘贴的 3 行乘 4 列,并在 3 行中的第 2 列的 D 列中插入总共 16 行。然后我在下面添加一个分页符(由其他要求决定的粗略的分页练习)。

以下代码实现了大部分功能:-

Dim Formula1 As String

Formula1 = "=SUM(R[-17]C:R[-2]C)"

For i = 21 To (Range("a5", Range("d4").End(xlDown)).Rows.Count + 4) Step 19

Range("Total_credit").Select
Selection.Copy

Range("a" & i).Select

Selection.Insert Shift:=xlDown

Range("a" & i).Offset(1, 3) = Formula1

Selection.Offset(3).PageBreak = xlPageBreakManual

Next i

但是,我在底部留下了 19 行数据 block ,这应该是 2 个 16 行的数据 block ,其中粘贴了文本,每个数据 block 下方的总数(理想情况下最后一个序列中不会有空白行,但我可以活下去如果我能把剩下的都做对的话)。当我使数据 block 大几行时,似乎会发生同样的问题,即最后一个总数总是在同一个地方(D117)。

看起来 i 的值在增加每个循环,但这似乎并没有反射(reflect)在过程中。我已经尝试了各种方法并彻底搜索无济于事,现在我的头正在旋转。我相信有人会立即看到我出错的地方,这似乎应该是一个简单的修复。

提前致谢。

最佳答案

我刚刚在您的代码中添加了这个来管理“for循环”限制

Dim row_count As Double

row_count = Range("a5", Range("d5").End(xlDown)).Rows.Count
row_count = row_count + Round(row_count / 16) * 3 + 4
For i = 21 to row_count step 19 'change limit to the variable "row_count"

这应该注意“For循环”限制。或者您可以将其更改为 Do While循环,您的受控变量可以更改。像这样:
Dim Formula1 As String
Dim row_count As Long

Formula1 = "=SUM(R[-17]C:R[-2]C)"
'initialize variable
row_count = Range("a5", Range("d5").End(xlDown).Address).Rows.Count + 4
i = 21 'initialize variable
'I added this before the loop to make the appearance clean
Cells.PageBreak = xlPageBreakNone
Do While i < row_count
Range("Total_credit").Copy: Range("a" & i).Insert xlDown
Range("a" & i).Offset(1, 3) = Formula1
Range("a" & I).Offset(3, 0).PageBreak = xlPageBreakManual
i = i + 19 'increment variable
're-initialize variable
row_count = Range("a5", Range("d5").End(xlDown).Address).Rows.Count + 4
Loop

希望这是你需要的。

关于excel - For...Next 在 Excel 中扩大范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18997591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com