Я создаю простую электронную таблицу Excel для ввода данных таблицы (таблица, созданная с использованием параметра "Формат как таблица" - пара столбцов, может быть сотни строк). Я бы хотел, чтобы последняя строка таблицы была пустой и готова к вводу данных (иначе я не вижу выпадающих списков). Я почти уверен, что видел это в прошлом, но я не могу повторить. Есть идеи, как я мог это сделать? Идеально без VBA.
3 ответа
Часто это самый простой способ заранее увеличить размер таблицы на столько строк, сколько вам нужно. Сортировка и формулы продолжат работать как положено.
- Выберите стол
- В меню «Инструменты / Дизайн таблицы» выберите «Изменить размер таблицы» и укажите более длинный диапазон.
В качестве альтернативы, вручную выберите последнюю строку в таблице и выполните команду "Вставить строку ниже" (или используйте небольшую стрелку в нижней правой ячейке). Это может быть автоматизировано с использованием VBA, если вы так склонны, хотя я обычно нахожу, что расширение таблицы делает то же самое и облегчает работу конечному пользователю.
Что ж, табуляция из последней ячейки в последней строке, в которую вы вводите данные, должна автоматически добавить новую пустую строку в таблицу. Это работает, только если у вас нет итоговой строки.
Возможно, вы захотите создать новую пустую строку, когда вы начнете редактирование в последней строке, а не когда вы закончите редактирование, но я не смог найти способ сделать это.
Я не знаю, как это сделать без VBA, но следующее взято из блога The Scripting Guy на TechNet. Вам следует обратиться к сообщению в блоге о том, как его использовать, но это лучший из известных мне способов.
Const xlCellTypeLastCell = 11
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Open("C:\Scripts\Test.xls")
Set objWorksheet = objWorkbook.Worksheets(1)
objWorksheet.Activate
Set objRange = objWorksheet.UsedRange
objRange.SpecialCells(xlCellTypeLastCell).Activate
intNewRow = objExcel.ActiveCell.Row + 1
strNewCell = "A" & intNewRow
objExcel.Range(strNewCell).Activate