Как скопировать строку в Excel VBA

Использование VBA для программирования Excel не так популярно, как раньше. Тем не менее, есть еще много программистов, которые предпочитают это при работе с Excel. Если вы один из тех людей, эта статья для вас.

Копирование строки в Excel VBA это то, для чего Excel VBA действительно полезен. Например, вы можете захотеть иметь один файл со всеми вашими квитанциями с указанием даты, аккаунта, категории, провайдера, продукт / услуга и стоимость вводятся по одной строке за раз по мере их появления - это пример развивающегося учета, а не статический учет. Для этого вам нужно иметь возможность скопировать строку с одного рабочего листа на другой.

Пример программы Excel VBA, которая копирует строку из одного листа в другой (для простоты использует только три столбца), содержит:

  • Альфа-столбец для текст
  • Числовой столбец - автоматическая сумма создается на целевом листе
  • Столбец даты - текущая дата и время заполняются автоматически

Соображения по написанию кода Excel VBA

Чтобы вызвать событие, которое копирует строку, используйте стандартный элемент управления Button. В Excel нажмите «Вставить» на вкладке «Разработчик». Затем выберите элемент управления Button button и нарисуйте кнопку там, где вы хотите. Excel автоматически отображает диалоговое окно, чтобы дать вам возможность выбрать

instagram viewer
макрос срабатывает по событию нажатия кнопки или для создания новой.

Есть несколько способов найти последнюю строку в целевой таблице, чтобы программа могла скопировать строку внизу. В этом примере выбирается сохранение номера последней строки на листе. Чтобы сохранить номер последней строки, вы должны где-то хранить этот номер. Это может быть проблемой, потому что пользователь может изменить или удалить номер. Чтобы обойти это, поместите его в ячейку прямо под кнопкой формы. Таким образом, он недоступен для пользователя. (Самое простое, что нужно сделать, это ввести значение в ячейку, а затем переместить кнопку поверх него.)

Код для копирования строки с использованием Excel VBA

Sub Add_The_Line () Dim currentRow As Integer Sheets ("Sheet1"). Выберите currentRow = Range ("C2"). Значение Rows (7). Выберите выбор. Копирование листов («Лист2»). Выберите строки (currentRow). Выберите ActiveSheet. Вставьте Dim theDate As Date theDate = Now () Ячейки (currentRow, 4) .Value = CStr (theDate) Ячейки (currentRow + 1, 3). Активируйте Dim rTotalCell как диапазон, установленный rTotalCell = _ Sheets ("Sheet2"). Ячейки ( Ряды. Count, "C"). End (xlUp) .Offset (1, 0) rTotalCell = WorksheetFunction. Sum _ (Range ("C7", rTotalCell. Смещение (-1, 0))) Листы («Лист1»). Диапазон («С2»). Значение = currentRow + 1 End Sub 

В этом коде используется xlUp, «магическое число» или, более технически, перечисляемая константа, которая распознается методом End. Смещение (1,0) просто перемещается вверх на одну строку в том же столбце, поэтому чистый эффект заключается в выборе последней ячейки в столбце C.

На словах в заявлении говорится:

  • Перейти к последней ячейке в столбце C (эквивалентно End + стрелка вниз).
  • Затем вернитесь к последней неиспользованной ячейке (эквивалентно стрелке End + Up).
  • Затем поднимитесь еще на одну клетку.

Последний оператор обновляет местоположение последней строки.

VBA, вероятно, сложнее, чем VB.NET, потому что вы должны знать объекты VBA VBA и Excel. Использование xlUP является хорошим примером такого рода специальных знаний, которые имеют решающее значение для возможности писать макросы VBA без поиска трех разных вещей для каждого оператора, который вы кодируете. Microsoft добилась значительных успехов в обновлении редактора Visual Studio, чтобы помочь вам определить правильный синтаксис, но редактор VBA не сильно изменился.