Страницы: 1
RSS
Найти номер столбца с последней заполненной ячейкой в строке
 
Здравствуйте, подскажите, пожалуйста, код VBA, который определит номер столбца находясь в активной строке в определенном диапазоне с 5:10 столбец.
Например я нахожусь во 2 строке и использовав код, уведомление должно выдать цифру "6", так как с 5:10 столбец только в 6 столбце есть заполненные данные,
если я нахожусь в 3 строке, то уведомление должно выдать цифру "8", так как последняя заполненная ячейка в диапазоне с 5:10 столбец в 3 строке выпадает на 8 столбец.
Изменено: vikttur - 09.02.2022 13:26:37
 
Обязательно VBA?
=ПРОСМОТР(2;1/(RC[-12]:RC[-3]<>"");СТОЛБЕЦ(RC[-12]:RC[-3]))
 
vikttur, к сожалению, обязательно VBA. Мне нужно растянуть последнюю заполненную ячейку в активной строке в диапазоне 5:10 столбец до столбца "J".  Значения разные бывают, в 5 может стоять "1", в 6 может стоять "2", и нужно, чтобы последняя заполненная ячейка с данными "2" и растянулась до 10 столбца
 
Цитата
Bugahor написал: они разные бывают
Пример ваш этому противоречит

В модуль листа
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim j As Long
    
    If Intersect(Range("B2:J99"), Target) Is Nothing Then Exit Sub

    With Target
        For j = 10 To 2 Step -1
            If Cells(.Row, j) <> "" Then
                If j = 10 Then Exit Sub
                If MsgBox("Столбец " & j & Chr$(10) & "Заполнить?", 64 + vbYesNo, "") = vbNo Then Exit Sub
                Range(Cells(.Row, j), Cells(.Row, 10)).Value = Cells(Target.Row, j)
                Exit Sub
            End If
        Next j
    End With
End Sub
 
Код
Sub iLastColumn()
Dim i As Long
Dim iLastRow As Long
Dim j As Integer
 iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
 Range("M2:M" & iLastRow).ClearContents
    For i = 2 To iLastRow
      For j = 10 To 5 Step -1
        If Cells(i, j) <> "" Then
          Cells(i, 13) = Cells(i, j).Column
          Exit For
        End If
      Next
    Next
End Sub
 
Спасибо всем огромное за ответы.
Страницы: 1
Наверх