2017-02-17 4 views
-3

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

enter image description here

Логически я думаю, что это будет что-то вроде: 1. Найти последний экземпляр "КЛИЕНТ 1" 2. Добавить строки

Любые советы ценится. Пожалуйста, дайте мне знать, если это недостаточно описательно.

+0

Почему вам нужно добавить строки, а не ставить значения в следующем доступная строка? Вы хотите скопировать строки? в любом случае проверьте свойство .End объекта Range: https://msdn.microsoft.com/en-us/library/office/ff839539.aspx – Absinthe

+0

1. Мне нужно добавить строки, чтобы я мог заполнить их последние полученные данные. 2. Это только мой второй проект с VBA. Я не имею понятия что я делаю. Я не пытаюсь использовать добрые люди SO. Я попробовал пару вещей, но ничего не могу найти, даже близко. Я придумал очень долгую работу. Но я подумал, что должен быть какой-то легкий цикл For или даже одна функция, о которой я не знаю. –

+0

Не нужно добавлять пустую строку, так как вы можете добавить ее в нижнюю часть, а затем отсортировать строки по клиенту, а затем по дате, указав конечный результат, который вы ищете. Проверьте [здесь] (https://www.thespreadsheetguru.com/blog/2014/7/7/5-different-ways-to-find-the-last-row-or-last-column-using-vba) для идентификация последней строки и [здесь] (https://msdn.microsoft.com/en-us/library/office/ff840646.aspx) для сортировки таблицы. Если у вас возникли проблемы с реализацией этих функций, добавьте редактирование на свой вопрос, включая код, который у вас есть, и мы поможем вам. – MoondogsMaDawg

ответ

0

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

Sub InsertClient() 

lastrow = Cells(Rows.Count, "A").End(xlUp).Row 

    For i = lastrow To 2 Step -1 
     If i = lastrow Then 
     Range("A" & i + 1).Value = Range("A" & i).Value 
     End If 

     If Range("A" & i).Value <> Range("A" & i - 1).Value Then 
     Rows(i).Insert shift:=xlShiftDown 
     Range("A" & i).Value = Range("A" & i - 1).Value 
     End If 

    Next i 

End Sub 
Смежные вопросы