В настоящее время в Excel VBA у меня есть простая функция, которая читает в наборе значений из первой строки рабочего листа, которую позже использует в уравнении.Изменение диапазона в VBA для выбора первой строки таблицы
equity(i) = Worksheets("Data").Range("D2").Offset(i - 1, 0)
debt(i) = Worksheets("Data").Range("E2").Offset(i - 1, 0)
riskFree(i) = Worksheets("Data").Range("F2").Offset(i - 1, 0)
Я хочу изменить это, чтобы функция считывала значения только из выделенного выделения на листе. Поэтому, если я выберу таблицу значений из данных, начиная с 20-й строки, она должна читать в D20, E20 F20 и т. Д. Вместо D2, E2 и F2, поскольку она настроена сейчас. Я пробовал:
equity(i) = Worksheets("Data").Range("D" & Rows.Count).end(xlUp).Offset(i - 1, 0)
debt(i) = Worksheets("Data").Range("E" & Rows.Count).end(xlUp).Offset(i - 1, 0)
riskFree(i) = Worksheets("Data").Range("F" & Rows.Count).end(xlUp).Offset(i - 1, 0)
но не повезло. Что я делаю не так?
То, что я до сих пор выглядит как этот
Function VarunModel(Table As Range, Optional EndCondition As Integer = 0) As Variant
Dim iNumCols As Integer, iNumRows As Integer
Dim i As Integer
iNumCols = Table.Columns.Count
iNumRows = Table.Rows.Count
maturity = Worksheets("KMV-Merton").Range("B2").Value
For i = 1 To iNumRows
equity(i) = Worksheets("Data").Range("D2").Offset(i - 1, 0)
debt(i) = Worksheets("Data").Range("E2").Offset(i - 1, 0)
riskFree(i) = Worksheets("Data").Range("F2").Offset(i - 1, 0)
Next I
Спасибо, что ответили. Извините, я был неясен - см. Редактирование. – beeba