【发布时间】:2018-05-07 07:11:50
【问题描述】:
我正在为一家银行开发财务模型,并遇到以下问题,我无法在 Excel VBA 中解决,希望您能提供帮助。
我构建了一个简单的宏,它基本上做了两件事:(i) 它清除给定范围内的内容,(ii) 它用公式填充相同的范围。简而言之,它如下所示:
Sub AutoCalculateCashFlows()
Range(D208:L208).ClearContents
Range("L208").FormulaR1C1 = "=+R[-34]C-R[-34]C[-1]"
Range("L208").AutoFill Destination:=Range("E208:L208"), Type:=xlFillDefault
End Sub
我的问题是应该自动填充的范围取决于用户在 E10:L10 的范围内填写了多少个单元格。用户将从右到左开始填充此范围,但我不知道他们将从 L 列向左移动多远。我的宏自动填充的公式至少需要两个数据,即。至少应填充 L10 和 K10,如果是后者,则宏只需要使用公式自动填充 L208,如果填写了 J10:L10,则宏需要自动填充范围 L208:K208 等等如果填写完整的 D10:L10 范围,则应使用公式填充 E208:L208。
我曾考虑通过两种途径解决此问题:(i) 将其视为动态范围问题,在这种情况下,我需要一个 vba 代码来确定用户在 D10:L10 范围内填充的上一个到最后一个单元格并在“Destination:=Range("E208:L208")”中使用该单元格的列代码,或者 (ii) 运行一个循环,该循环将使用公式填充范围 E208:L208 直到单元格在D10范围内的上一列中:L10由用户填写并在没有时停止。
希望这是有道理的,并提前感谢您的帮助。
【问题讨论】:
标签: vba excel loops dynamic range