Я пытаюсь пройти через столбец в excel с помощью VBA, у меня проблема, потому что «W2» жестко закодирован в функции, так как я перебираю электронную таблицу, W2 необходимо изменить на W3, W4 W5 и т. Д.Loop через столбец
ниже - мой код.
Function GetTopDrTS(L_NumCellsFromEdge As Integer, L_NumOfCells As Integer) As Double
'Get Top Drive Side Triple Spot calculation
Dim val As Double
val = 0
'Select Cell W2 to set starting position
Range("W2").Select
'Read in the cells we need to average
Dim i As Integer
For i = 0 To L_NumOfCells - 1
val = val + Selection.Worksheet.Cells(Selection.Row, _
Selection.Column + EdgePos + L_NumCellsFromEdge + i).Value
Next i
GetTopDrTS = val/L_NumOfCells
end function
Вы имели в виду диапазон ("W2" и i) .выбрать? –
Нет, я этого не делал. 'Range (" W2 ")' является жестко закодированной ссылкой на одну ячейку, и именно это заставляет ваш код не зацикливаться. 'Range (« W »& i)» удаляет номер жесткой кодированной строки и заменяет его переменной «i», которая каждый раз изменяется через ваш цикл. 'Range (« W2 »& i)» также не будет жестко закодирован, но даст вам строки «21-29», затем «210-299», затем «2100-2199» и т. Д., Так как «i» увеличивается - вероятно, не то, что вам нужно. Попробуйте, посмотрите, что произойдет, затем выполните код в отладчике (нажмите клавишу «F8»), чтобы выполнить одну строку за раз и посмотреть, какая ячейка выбрана. – FreeMan