Життя

Як скопіювати рядок у Excel VBA

Як скопіювати рядок у Excel VBA


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Використання VBA для програмування Excel не так популярно, як раніше. Однак є ще багато програмістів, які віддають перевагу цьому під час роботи з Excel. Якщо ви один з цих людей, ця стаття для вас.

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

Зразок програми Excel VBA, який копіює рядок з одного робочого аркуша на інший, використовуючи лише три стовпці для простоти, містить:

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

Міркування щодо написання Excel VBA коду

Щоб запустити подію, яка копіює рядок, перейдіть за допомогою елемента управління кнопкою стандарт-a. У Excel натисніть Вставити на вкладці Developer. Потім виберіть керування форми кнопки та намалюйте кнопку там, де ви хочете. Excel автоматично відкриває діалогове вікно, щоб дати вам можливість вибрати макрос, ініційований подією натискання кнопки, або створити новий.

Існує кілька способів знайти останній рядок на цільовому робочому аркуші, щоб програма могла скопіювати рядок внизу. Цей приклад вирішує підтримувати номер останнього рядка на робочому аркуші. Щоб зберегти номер останнього рядка, ви повинні десь зберігати це число. Це може бути проблемою, оскільки користувач може змінити або видалити номер. Щоб обійти це, розмістіть його в комірці безпосередньо під кнопкою форми. Таким чином, він недоступний для користувача. (Найпростіше зробити це ввести значення в комірку, а потім перемістити кнопку по ній.)

Код для копіювання рядка за допомогою Excel VBA

Sub Add_The_Line () Dim currentRow As Integer Sheets ("Sheet1"). Виберіть currentRow = Діапазон ("C2"). Значення рядків (7) .Select Selection.Copy Sheets ("Sheet2"). Виберіть рядки (currentRow) .Select ActiveSheet .Paste Dim theDate As Date theDate = Тепер () Осередки (currentRow, 4) .Value = CStr (theDate) Клітини (currentRow + 1, 3). Активуйте Dim rTotalCell As Range Set rTotalCell = _ Sheets ("Sheet2"). (Rows.Count, "C"). End (xlUp) .Offset (1, 0) rTotalCell = WorksheetFunction.Sum _ (діапазон ("C7", rTotalCell.Offset (-1, 0))) Sheets ("Sheet1" ) .Range ("C2"). Значення = currentRow + 1 Кінець Sub

Цей код використовує xlUp, "магічне число" або більш технічно перераховану константу, яка розпізнається методом End. Зсув (1,0) просто переміщується вгору на один рядок в одному стовпчику, тому чистий ефект полягає у виборі останньої комірки в стовпці С.

Словом, у заяві сказано:

  • Перейдіть до останньої комірки у стовпці С (еквівалентно стрілці "Кінець + вниз")
  • Потім поверніться до останньої невикористаної комірки (еквівалентної стрілці Кінець + Вгору).
  • Потім підніміться ще на одну клітинку.

Останній вислів оновлює розташування останнього рядка.

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


Video, Sitemap-Video, Sitemap-Videos