Страницы: 1
RSS
Выбор следующей пустой строки и вставка данных в нее, ошибка в коде
 
Пытаюсь писать код... Выдает дебаг на строк с определением ячейки для вставки
Код
' Выбираем область
    Rows("1:150").Select
    
' Копируем
    Selection.Copy
    
' Открываем книгу отдела
    Workbooks.Open Filename:="\\srv\Obmen\_ФОРМЫ\АРХИВ\" & Range("C5").Value & ".xlsx"
    
' Снимаем защиту
    ActiveSheet.Unprotect Password:="*******"
' Вставляем скопированное в первую пустую строку
    Dim emptyRow As Long
    emptyRow = WorksheetFunction.CountA(Range("B:B")) + 1
    Cells(emptyRow, 1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Стопорится на строке Selection.PasteSpecial
Никак не могу понять. почему не срастается.

Please HELP

Тема поднята также тут http://www.excel-vba.ru/forum/index.php?topic=4136.msg22415#msg22415
Изменено: BPN1973 - 29.10.2015 11:23:21
 
emptyRow чему равно, когда стопор на ней?
Кому решение нужно - тот пример и рисует.
 
П.с. учитесь обходится без не нужных селектов. Rows("1:150").Copy
такое определение последней пустой подойдет если нет промежуточных пустых строк.
Изменено: V - 28.10.2015 16:44:32
 
Пытливый, ой... не ту строку указал. Дебажить предлагает с 16 строки. Т.е. первая пустая строка выбирается. Сейчас поправлю в сообщении.
 
V,Спасибо!

Я ж VBA newbie))) пока очень коряво все получается и больше по наитию. Плюс это осталось после чистки кода, сгенеренного макросом

Еще забыл сказать.
Код то работает, то нет. Условия при которых работает, при которых нет - не понятны. Отключение строки ввода пароля - не является ключевым.
Возможно буфер все таки чиститься... но вот в какой момент?
Изменено: BPN1973 - 28.10.2015 23:24:55
 
Цитата
2.3. Приложите файл(ы) с примером (общим весом не более 100 Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.
   2.4. Не прикладывайте файлы-примеры с персональными данными, конфиденциальной информацией, коммерческой или государственной тайной! Яндекс и Google не спят - проиндексируют ваши данные и привет - они попадут в открытый доступ. И даже удаление темы потом не поможет.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Сделал файлы с примерами... Выдает ту же ошибку.. Такое впечатление, что снятие защиты с листа обнуляет буфер обмена
 
Скрытый текст

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan,  СПАСИБО! Буду пробовать. По результатам отпишусь.

Понаглею еще...
в завершение макроса надо еще восстановить защиту листа и закрыть
Насколько я понимаю
после строки
Application.CutCopyMode = False
добавить строки
oash.Protect Password:="1111"
awb.Close
 
BPN1973, да. Только:
Код
owb.Close
:)

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
Не рекомендуется
   4.1. Создавать одинаковые темы или сообщения в разных форумах (cross-posting). Публикуя один и тот же вопрос в разных форумах и на дружественных сайтах вы заставляете сразу нескольких людей параллельно думать над вашей задачей и обесцениваете усилия тех, кто даст ответ вторым-третьим и т.д.
Сами дадите ссылки или вместо Вас по форумам бегать?
 
Если вы про это http://www.excel-vba.ru/forum/index.php?topic=4136.msg22428#msg22428 то я и не скрываю.

Я никоим образом не собирался обесценивать усилия ни одного из тех, кто ответит. Мне необходимо решение проблемы и к сожалению сроки очень меня поджимают. Помимо того, используя разные варианты я сам учусь и надеюсь в будущем смогу помогать таким же неумекам как я сейчас. По объективным обстоятельствам время реакции на сообщение и ответ на разных форумах разное. При нахождении ответа на одном из форумов - я бы отписался на втором.
Изменено: BPN1973 - 29.10.2015 10:58:41
 
Цитата
BPN1973 написал: Я никоим образом не собирался обесценивать усилия ни одного из тех, кто ответит
Тогда ИНФОРМИРУЙТЕ (давайте ссылки), что разместили вопрос ещё где-то.
 
С Вашего разрешения позвольте все таки продолжить тему.

Выскакивает ошибка
https://cloud.mail.ru/public/DhWs/K4YvzoPEJ
https://cloud.mail.ru/public/6Q7x/EyruLfjfw
Почему возникла ошибка понятно - не могу понять как ее решить.
 
Цитата
Юрий М написал:
Тогда ИНФОРМИРУЙТЕ (давайте ссылки), что разместили вопрос ещё где-то
Замечание принял к сведению. Исправился
 
Спасибо JayBhagavan за Ваше время. Вместе с ответом с дружественного сайта у меня начало складываться понимание того, что и как надо делать дальше.
Огромное спасибо!

Ответ с дружественного сайта: http://www.excel-vba.ru/forum/index.php?topic=4136.msg22431#msg22431

"Ну вот смотрите. Как только Вы открыли файл - буфер очистился. Сделайте так:
Код
Sub Пример()
    Dim wsAct As Worksheet
    Set wsAct = ActiveSheet
    
    Workbooks.Open Filename:="c:\" & Range("a3").Value & ".xlsx"
    ActiveSheet.Unprotect Password:="1111"
    Dim emptyRow As Long
    emptyRow = WorksheetFunction.CountA(Range("B:B")) + 1
    
    wsAct.Rows("10:18").Copy
    Cells(emptyRow, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Cells(emptyRow, 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Cells(emptyRow, 1).PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
Страницы: 1
Наверх