【发布时间】:2023-03-30 05:48:02
【问题描述】:
大家早上好。我正在构建一个项目财务模型,该模型需要我通过使用复制/粘贴循环表来打破一些循环。
现在,我正在使用代码,其中需要“Fin 语句”选项卡中的一个单元格在循环切断之前转到 True。但由于某种原因它不起作用。我需要你的帮助来修复代码。
Sub Cir_Reinvestment()
'
' Cir_Reinvestment Macro
' For Scenario 1
Dim I As Long
Dim Rngcashchk As Boolean
'Cell where sheet checks for True/False statement
Rngcashchk = Sheets("Fin Statements").Cells(105, E)
'Copy Paste Actions start here
Sheets("Inputs").Select
Range("Macro.Cashflow.Closing.Copy").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Range("Macro.Cashflow.Closing.Paste").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Inputs").Select
Range("MacroRS.Invested.Fund.Copy").Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.Copy
Range("MacroRS.Invested.Fund.Paste").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("MacroRS.REIncome.Copy").Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.Copy
Range("MacroRS.REIncome.Paste").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("Macro.Cashflow.Closing.Copy").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Range("Macro.Cashflow.Closing.Paste").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Loop should end once Cell is True
Loop Until Rngcashchk = True
End Sub
【问题讨论】:
-
1. 循环的
Do部分在哪里? 2.您可能还想查看How to avoid using Select in Excel VBA -
您似乎没有在发布的代码中的任何地方更改 Rngcashchk。单元格中的值会随着代码的执行而改变吗?
-
什么时候结束,Rngcashchk 永远不会改变。 Cell(105, E) 是否可能是其中一个范围的一部分?
-
但它不起作用无济于事。有错误吗?如果有,它的编号和描述是什么?如果
E不是定义的名称,那么Cells(105, E)将不起作用。请改用Cells(105, "E")。您能否将命名范围替换为实际地址(其中只有 6 个)? -
好的,它正在使用“E”,但循环没有结束。该怎么办?