Получите максимальное значение из таблицы, увеличьте его на единицу и вставьте в активную ячейку

#excel #vba

Вопрос:

У меня есть таблица SOGP1 , в которой есть столбец ShotNo , который нужно увеличивать на единицу каждый раз, когда я нажимаю в любой ячейке в первых 37 столбцах

Шаг 1 — щелкните где — нибудь Шаг 2 — Найдите столбец максимального значения ShotNo в таблице SOGP1 , увеличьте его на 1, сохраните это значение в активной ячейке шаг 3-Добавьте новую строку в таблицу SOGP1 и добавьте следующее значение в ShotNo столбец

Поэтому, если максимальное значение равно 2, я вставлю 3 в ячейку, которую я щелкну, и я также добавлю строку в таблицу, а в ShotNo столбец вставлю значение 3.

Это то, что у меня есть до сих пор:

 Dim lstObj1 As ListObject
Set lstObj1 = Worksheets("Sheet 1").ListObjects("SOGP1")
ActiveCell.Value = WorksheetFunction.Max(lstObj1.ListColumns("ShotNo").Range)   1
 

Я получаю subscript - out of range сообщение об ошибке

Заранее спасибо

Комментарии:

1. Какая строка выдает ошибку?

2. строка ActiveCell.Value

3. Это означает, что в таблице нет столбца с заголовком "ShotNo" .

4. Sub p1sh () ‘Макрос p1sh’ Сочетание клавиш: Ctrl q ‘ Dim lstObj1 Как набор объектов списка lstOjb1 = Рабочие листы(«Лист 1»).Объекты списка(«SOGP1») ActiveCell.Значение = Функция рабочего листа. Макс(lstObj1.ListColumns(«ShotNo»). Диапазон) 1 Конечная субмарина Может ли это быть что-то другое? Ii вырезал и вставил название таблицы и столбцы

5. Это означает, что ActiveWorkbook в нем нет листа с именем «Лист1», или лист с именем «Лист1» не содержит таблицы с именем «SOGP1», или и то, и другое.