2016-02-29 2 views
1

Я использую этот код, чтобы сделать автоматический серийный номер, но то, что я хочу сделать, это:Автоматический серийный номер в таблице

Я создал две таблицы в Sheet1 ("Table1")& ("Table2"), и я хочу, чтобы применить это код для них индивидуально.

Private Sub Worksheet_Activate() 
    lrow = Cells(Rows.Count, 2).End(xlUp).Row 
    Set myrange = Range(Cells(2, 2), Cells(lrow, 2)) 
    For Each cell In myrange 
     cell.Offset(0, -1).Value = i + 1 
     i = i + 1 
    Next cell 
End Sub 

ответ

0

Почему вы не используете формулу вместо VBA для получения Sl. # Для вашей таблицы.

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

Итак, во второй строке таблицы Sl. # Столбец (1-я строка, предназначенная для заголовков столбцов таблицы) просто скопируйте вставку формулы ниже.

= ROWS ($ 1: 1)

+0

спасибо друг мой, но я хотел бы использовать его в качестве VBA поможет вам лучше здесь, как ни номер будет отображаться, если нет слов/s в ячейке B, а также, если я хочу для использования формулы я могу использовать следующее: = if (B2 <>, "", 1, ""), а во второй строке = if (B3 <> "", 1 + B2, ""). это может служить моей просьбе лучше. в любом случае, спасибо за помощь. –

+0

Но указанная вами формула будет вызывать ошибки, когда какая-либо из строк будет удалена. Но в моей предложенной формуле вы не столкнетесь с ошибкой #REF, так как она будет автоматически настроена. – Sixthsense

+0

Вы правы, но вам также нужно положить его в If-Condition для выполнения той же функции, что и this = IF (E10 <> "", ROWS ($ 1: 1), ""). это полезно для использования, но я действительно хочу знать, кто может это применить в VBA на одном листе в двух таблицах. поскольку я не хочу, чтобы кто-либо очищал формулу в таблице, поскольку она используется разными пользователями. это проблема. –

Смежные вопросы