2

Я создаю простую электронную таблицу Excel для ввода данных таблицы (таблица, созданная с использованием параметра "Формат как таблица" - пара столбцов, может быть сотни строк). Я бы хотел, чтобы последняя строка таблицы была пустой и готова к вводу данных (иначе я не вижу выпадающих списков). Я почти уверен, что видел это в прошлом, но я не могу повторить. Есть идеи, как я мог это сделать? Идеально без VBA.

3 ответа3

2

Часто это самый простой способ заранее увеличить размер таблицы на столько строк, сколько вам нужно. Сортировка и формулы продолжат работать как положено.

  • Выберите стол
  • В меню «Инструменты / Дизайн таблицы» выберите «Изменить размер таблицы» и укажите более длинный диапазон.

В качестве альтернативы, вручную выберите последнюю строку в таблице и выполните команду "Вставить строку ниже" (или используйте небольшую стрелку в нижней правой ячейке). Это может быть автоматизировано с использованием VBA, если вы так склонны, хотя я обычно нахожу, что расширение таблицы делает то же самое и облегчает работу конечному пользователю.

1

Что ж, табуляция из последней ячейки в последней строке, в которую вы вводите данные, должна автоматически добавить новую пустую строку в таблицу. Это работает, только если у вас нет итоговой строки.

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

0

Я не знаю, как это сделать без 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .