0
TLDR:我需要更改我編寫的基於用戶輸入選擇一系列數據的宏。它最初使用整個範圍(只是連續的列),但現在需要選擇其他列。 在動態範圍VBA中選擇每個其他列
我有一個表,我的工作在哪裏,用戶將輸入的年數,他們想看看投資了過來。基本上,我有50年的人口,我的宏隱藏超過指定年份的列。然後使用剩餘的可見範圍,我有運行的指標(淨現值,內部收益率)。這一切都運行良好,但我現在需要在初始數據旁邊放置一個百分比列,這意味着公制公式無法按照原樣使用連續範圍運行。他們需要看到data.Here 下面的每隔一列是我的代碼:
Sub HideCol()
'Prep the sheet
Sheets("Modeling").Visible = True
Sheets("Modeling").Activate
Columns("C:AZ").Select
Selection.EntireColumn.Hidden = True
myNum = Worksheets("InitialData").Range("LeaseTerm").Value
Range("C1").Select
numrows = Selection.Rows.Count
numColumns = Selection.Columns.Count
Selection.Resize(numrows + 0, numColumns + myNum - 1).Select
Selection.EntireColumn.Hidden = False
'Input dynamic calcs
'This is my problem here. calcrange selects consecutive columns, and I need to do every other
Dim calcrange As Range
Set calcrange = Union(Range("InvestmentOutlay"), Range(Range("B57"), Range("B57").End(xlToRight)))
Range("IRR").Formula = "=IRR(" & calcrange.Address & ")"
Dim npvRange As Range
Set npvRange = Range(Range("C57"), Range("C57").End(xlToRight))
Range("NPV").Formula = "=NPV(EconGrowth," & npvRange.Address & ")"
Dim outF As Range
Dim inF As Range
Set outF = Range("InvestmentOutlay")
Set inF = Range(Range("C57"), Range("C57").End(xlToRight))
Range("PB").Formula = "=PaybackPeriod(" & outF.Address & ", " & inF.Address & ")"
End Sub
感謝答覆。我在VBA方面很新穎,所以我希望我可以把事情做好。我得到一個錯誤,調試突出顯示這一行:/ n'Dim c As Long Set calcrange = Range(「InvestmentOutlay」) For c = 2 To Range(「B57」)。End(xlToRight).Column步驟2 設置calcrange =聯合(calcrange,Cells(57,c)) Next' This line here ** ** Range(「IRR」)。Formula =「= IRR(」&calcrange.Address&「) 「' – jules325
對不起,這很讓人困惑。所以它在你寫的代碼之後的下一行,它在IRR公式中輸入calcrange變量: 'Range(「IRR」)。Formula =「= IRR(」&calcrange.Address&「)」' – jules325
@ jules325 - ahh - 我應該更詳細地閱讀代碼 - 我認爲你可以改變這一行來說'Range(「IRR」)。Formula =「= IRR((」&calcrange.Address&「))''(但是我會預料到這會給你一個問題,除非「InvestmentOutlay」是單元格A57。) – YowE3K