Макрос Excel: последняя непустая ячейка в столбце

это последующий вопрос к этот.

следующая формула может использоваться для поиска значения последней непустой ячейки в столбце В Microsoft Excel:

=LOOKUP(2,1/(A:A<>""),A:A)

мой вопрос в том, как я могу преобразовать эту формулу в Макрофункцию? Так что я могу использовать его так:

=GetLastValueInColumn('A')

действительно, мне нужно преобразовать букву 'A' в диапазон A: A, но не знаю, как.

3
задан Community
28.04.2023 14:24 Количество просмотров материала 2440
Распечатать страницу

3 ответа

либо просто используйте формулу листа в макросе, т. е.

Function GetLastValueInColumn(r As Range) As Range
  GetLastValueInColumn = Application.WorksheetFunction.LOOKUP(2,1/(r<>""),r)
End Function

или использовать некоторые специфические методы VBA, пара подробно описаны в ответ на StackOverflow.

1
отвечен eirikdaude 2023-04-29 22:12

Как писал эйрикдод, есть много способов выполнить свою основную задачу в VBA.

для преобразования строки в объект диапазона, ссылающийся на весь столбец, можно использовать что-то вроде:

Function LastValueInColumn(COL)
  Dim R as Range
  Set R = Cells(1,COL).EntireColumn

Это будет работать (набор R в нужную колонку) при условии, коль это буква столбца и номер. Но это вызовет ошибку времени выполнения, если, например, COL является объектом диапазона или недопустимой ссылкой на столбец. Так, в зависимости от вашего применения, вы возможно, потребуется сделать некоторую проверку ошибок.

0
отвечен Ron Rosenfeld 2023-04-30 00:29

попробуйте:

Public Function GetLastValue(rIn As Range) As Variant
    Dim N as Long
    N = Cells(Rows.Count, rIn.Column).End(xlUp).Row
    GetLastValue = Cells(N, rIn.Column)
End Function

и использовать его как это:

enter image description here

Примечание:

это в желаемом формате:

=GetLastValue(A:A)
0
отвечен Gary's Student 2023-04-30 02:46

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх