powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Перенос в другую книгу
11 сообщений из 11, страница 1 из 1
Перенос в другую книгу
    #33172410
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Private Sub CommandButton1_Click()
Workbooks.Open Filename:="C:\Мои документы\Test save\pere4en.xls"
Windows("akt.xls").Activate
Range("C4").Select
Selection.Copy
Windows("pere4en.xls").Activate
Range("A2").Select ' ЗДЕСЬ ДАЕТ ОШИБКУ
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Макрос на ЛИСТ1 в файле akt.xls Пробовал переместить в модуль, но кнопка не хочет туда обращатся. В чем дело? Подскажите пожайлуста.
...
Рейтинг: 0 / 0
Перенос в другую книгу
    #33172436
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Всегда указывай кому принадлежит объект Range.
2) Никогда не пользуйся командой Selection.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub CommandButton1_Click()
   dim wbPere4en as Workbook

   set wbPere4en = Workbooks.Open("C:\Мои документы\Test save\pere4en.xls")

   ThisWorkbook.WorkSheets("ЛИСТ1").Range("C4").Copy

   wbPere4en.Worksheets("ЛИСТ1").Range("A2").Paste

   ThisWorkbook.Activate 
End Sub
...
Рейтинг: 0 / 0
Перенос в другую книгу
    #33172526
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Private Sub CommandButton1_Click()
dim wbPere4en as Workbook

set wbPere4en = Workbooks.Open("C:\Мои документы\Test save\pere4en.xls")

ThisWorkbook.WorkSheets("ЛИСТ1").Range("C4").Copy

wbPere4en.Worksheets("ЛИСТ1").Range("A2").Paste ' Теперь здесь ОШИБКА

ThisWorkbook.Activate
End Sub


Может что то в настройках EXCEL не так ?
...
Рейтинг: 0 / 0
Перенос в другую книгу
    #33172537
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Копировать можно тока в активный sheet :
wbPere4en.Worksheets("ЛИСТ1").activate
потом paste
...
Рейтинг: 0 / 0
Перенос в другую книгу
    #33172544
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Private Sub CommandButton1_Click()
Dim wbPere4en As Workbook
Set wbPere4en = Workbooks.Open("C:\Мои документы\Test save\pere4en.xls")
ThisWorkbook.Worksheets("ЛИСТ1").Range("C4").Copy
wbPere4en.Worksheets("ЛИСТ1").Activate
wbPere4en.Worksheets("ЛИСТ1").Range("A2").Paste ОШИБКУ ДАЕТ
ThisWorkbook.Activate
End Sub

Уперся гад. Может что то в настройках?
...
Рейтинг: 0 / 0
Перенос в другую книгу
    #33172548
Paste - это метод объекта Worksheet.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
   Dim wbPere4en As Workbook

   Set wbPere4en = Workbooks.Open("D:\1\pere4en.xls")

   ThisWorkbook.Worksheets("ЛИСТ1").Range("C4").Copy
   ActiveSheet.Paste Destination:=wbPere4en.Worksheets("Лист1").Range("A1")

   ThisWorkbook.Activate
...
Рейтинг: 0 / 0
Перенос в другую книгу
    #33172560
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наконец
ActiveSheet.Paste Destination:=wbPere4en.Worksheets("Лист1").Range("A1")
Это ЗАРАБОТАЛО !!!
Спасибо ВСЕМ ЗА ПОМОЩЬ !!!

Тема закрыта
...
Рейтинг: 0 / 0
Перенос в другую книгу
    #33174183
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользователь2Paste - это метод объекта Worksheet.

Код: plaintext
1.
2.
3.
4.
5.
   Dim wbPere4en As Workbook

   Set wbPere4en = Workbooks.Open("D:\1\pere4en.xls")

   ThisWorkbook.Worksheets("ЛИСТ1").Range("C4").Copy
   ActiveSheet.Paste Destination:=wbPere4en.Worksheets("Лист1").Range("A1) 


Чтоб не запоминать такие мудренные длинные фразы оказывается можно еще так:

per=ThisWorkbook.Worksheets("ЛИСТ1").Range("C4")
ActiveSheet.range("A1")=per

т.е. передать данные через переменную. Проверено. Работает !
...
Рейтинг: 0 / 0
Перенос в другую книгу
    #33174248
Alexey Syrok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
talgatт.е. передать данные через переменную. Проверено. Работает !

неплохо потом обнулить per ,а то помню глюки были.
...
Рейтинг: 0 / 0
Перенос в другую книгу
    #33174437
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользователь2Paste - это метод объекта Worksheet.
Действительно, забыл :)

talgat
Чтоб не запоминать такие мудренные длинные фразы оказывается можно еще так:

per=ThisWorkbook.Worksheets("ЛИСТ1").Range("C4")
ActiveSheet.range("A1")=per

т.е. передать данные через переменную. Проверено. Работает !
Да, работает, но это все таки не совсем правильно.

Во первых, присвоение в переменную можно делать только одной единственной ячейки. При этом, если не указано что-то другое, от ячейки будет взята проперть Value. То есть в реальности твоя первая команда работает так:
per=ThisWorkbook.Worksheets("ЛИСТ1").Range("C4").Value
Тоже самое (Value) подставляется при записи значения в ячейку:
ActiveSheet.Range("A1").Value=per

Во вторых, намного проще в данном случае обойтись вообще без переменной:
ActiveSheet.Range("A1").Value = ThisWorkbook.Worksheets("ЛИСТ1").Range("C4").Value

А когда понадобиться копировать несколько ячеек разом - тогда и будешь пользоваться Copy/Paste
...
Рейтинг: 0 / 0
Перенос в другую книгу
    #33174953
White OwlВо вторых, намного проще в данном случае обойтись вообще без переменной:
ActiveSheet.Range("A1").Value = ThisWorkbook.Worksheets("ЛИСТ1").Range("C4").Value

Я тоже об этом хотел еще вчера написать, что можно напрямую, без переменных.

Код: plaintext
1.
wbPere4en.Worksheets("Лист1").Range("A1") = _ 
ThisWorkbook.Worksheets("ЛИСТ1").Range("C4")
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Перенос в другую книгу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]