Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Добавление данных в конец таблицы на VBA
 
Помогите, пожалуйста, найти ошибку. Написала макрос на заполнение таблицы данными из другого файла. Проблема в том, что при следующем заполнении происходит замена уже имеющихся данных. А надо что б новые данные добавились ниже.
Код
Sub zzzzz()
Dim Arr(1000, 40)
    MsgBox "Укажите путь к сбыту"
    FilePath1 = Application.GetOpenFilename()
    MsgBox "Укажите путь к заполняемому файлу"
    FilePath2 = Application.GetOpenFilename()
Workbooks.Open Filename:=FilePath1, UpdateLinks:=0
    Range("A65536").Select
    Selection.End(xlUp).Select
    Rowsend1 = ActiveSheet.Cells.Row
    For i = 2 To 1000
    For j = 1 To 35
        Arr(i, j) = ActiveSheet.Cells(i, j).Value
    Next
    Next
ActiveWindow.Close (False)
Workbooks.Open Filename:=FilePath2, UpdateLinks:=0
Worksheets("вся техника").Activate
    Range("A65536").Select
    Selection.End(xlUp).Select
    Rowsend2 = ActiveSheet.Cells.Row + 1
    For i = 2 To 1000
            ActiveSheet.Cells(Rowsend2, 3).Value = Arr(i, 1)
            ActiveSheet.Cells(Rowsend2, 20).Value = Arr(i, 23)
            ActiveSheet.Cells(Rowsend2, 4).Value = Arr(i, 2)
            ActiveSheet.Cells(Rowsend2, 6).Value = Arr(i, 10)
            ActiveSheet.Cells(Rowsend2, 7).Value = Arr(i, 9)
            ActiveSheet.Cells(Rowsend2, 19).Value = Arr(i, 22)
            ActiveSheet.Cells(Rowsend2, 21).Value = Arr(i, 11)
            ActiveSheet.Cells(Rowsend2, 23).Value = Arr(i, 26)
            Rowsend2 = Rowsend2 + 1
    Next

End Sub
Изменено: guri - 26 Янв 2016 14:48:45
 
Вот это я как-то не понимаю:
Код
Rowsend2 = ActiveSheet.Cells.Row + 1
Кому решение нужно - тот пример и рисует.
 
А это
Код
Rowsend1 = ActiveSheet.Cells.Row

понятно? :)
 
1. Коды необходимо заключать в теги. Выделяете текст кода, ищете среди кнопок(тех, которые чуть выше поля в котором пишете сообщение) вот такую: <...> и нажимаете. Исправьте свое сообщение. Спасибо.
2.
Код
Range("A65536").Select 
Selection.End(xlUp).Select 
ищете(по крайней мере пытаетесь) последнюю заполненную ячейку в столбце А, т.е. первом, а заполнять начинаете лишь с С(т.е. 3-го): ActiveSheet.Cells(Rowsend2, 3).Value = Arr(i, 1)
первый столбец никак не затронут.
3. Пара ссылок:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо))))
Страницы: 1
Читают тему (гостей: 2)
Наверх