Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 След.
RSS
Как перенести данные между ячейками из одной книги в другую
 
Как можно перенести данные из одной ячейки в другую между разными книгами, только что бы в конечной отображалось число а не ссылка на ячейку в другой книги?
З.ы: в первой книге числа для переноса формируются простыми формулами.
 
Если без ссылки, то макросом можно.
 
Не подскажите есть ли готовые решение или примеры. В макросах не сильна.
 
Например так:
Код
Sub Макрос()
Range("C2").Select
Selection.Copy
Windows("Книга1").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
Переносим значение из ячейки C2 в ячейку A2 другой книги. Запишите макрокодером то что вам нужно и посмотрите, как происходит перенос.  
 
DopplerEffect, А если с определенного листа одной книги на определенны лист другой книги. И еще с одной книги с определенных ячеек на другую в другие ячейки.
К примеру: Книга1, лист 1, ячейка R35C14 Скопировать значение в Книга 2, лист2, ячейка R3C17.
И так несколько ячеек.
Вот так будет работать:
Код
Sub ПРАЙС_Кнопка_Щелчок()
Workbooks("Прайс1.xlsx")
Sheets("лист1").Select  
Range("R35:C14").Select
Range("R38:C13").Select  
Selection.Copy
Workbooks("Прайс2.xlsx")  
Sheets("лист2").Select  
Range("R3:C17").Select
Range("R10:C17").Select   
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  
:=False, Transpose:=False  
End Sub
Изменено: Maria12345 - 8 Авг 2018 15:11:03
 
а пример книг Прайс1 и прайс2 можно? и путь к этим файлам, т.к судя по расширению .xlsx макрос будет в каком-то третьем файле
 
Цитата
Maria12345 написал:
Range("R35:C14").Select
Вот эта строка в вашем макросе ничего не делает, просто выделяет диапазон и сразу перескакивает на другой
"Все гениальное просто, а все простое гениально!!!"
 
yozhik, Можно. Они будут лежать в одной папке C:\Users\A.Maria\Desktop\test
Одну книгу прикрепил
Вторая по ссылке(много весит)
Книга 1
 
вот так должно работать!
Код
Sub ПРАЙС_Кнопка_Щелчок()
    With Workbooks("Прайс1.xlsx").Sheets("лист1")
        Workbooks("Прайс2.xlsx").Sheets("лист2").Range("R3:C17,R10:C17") = _
        .Range("R35:C14,R38:C13").Value
    End With
End Sub
Изменено: Nordheim - 8 Авг 2018 15:37:30
"Все гениальное просто, а все простое гениально!!!"
 
Если книги открыты, путь (на сколько я знаю) не имеет значения.  :D
"Все гениальное просто, а все простое гениально!!!"
 
ну по таким прикреплениям меня не пускают..) книги нужны чтоб понять, по какому принципу строится соответствие
Цитата
Maria12345 написал:
одной книги с определенных ячеек на другую в другие ячейки
если адреса ячеек разные в двух книгах, макросу надо как-то объяснить, в какие именно ячейки вставлять.Хотя может у Вас постоянно одинаковые ячейки копируются и вставляются всегда в одно и то же место.
Цитата
Maria12345 написал:
Range("R35:C14").Select
вот здесь Вы планируете выделить диапазон C14:R35 - 352 ячейки, или это попытка выделить ячейку N35?
 
Цитата
Nordheim написал:
Если книги открыты,
абсолютно верно) но возможны ведь и варианты) обе закрыты, открыта одна из..)
 
"
Цитата
yozhik написал:
обе закрыты, открыта одна из
тут уже не только копирование, а еще открытие книги, либо использование GetObgect(), но думаю это не для этой темы   :D
Смею предположить, что у Maria12345,  будут обе книги открыты  ;)
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim,
Не сработало(
заменило вот так Скрин
 
yozhik, Вот ссылка на книги в архивеКниги excel
Нужно не диапазон а конкретную ячейку и так же в конкретную вставить значение.
А нужно что бы две книги были открыты, а если одна из которой копируются значения открыта?
 
Цитата
Maria12345 написал:
Nordheim , Не сработало(
Какой диапазон указали, тот и прописан в коде.
Цитата
Maria12345 написал:
А нужно что бы две книги были открыты, а если одна из которой копируются значения открыта?
А вот тут как раз и нужен путь по которому будет открываться файл.
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, А как указать если нужна одна ячейка и почему тогда значение не вставилось а Н/Д?
 
наверное Вам что-то наподобие нужно
Код
Sub ПРАЙС_Кнопка_Щелчок()
Dim p1 As Workbook, p2 As Workbook
Set p1 = Workbooks("Прайс1.xlsx")
Set p2 = GetObject("C:\Users\A.Maria\Desktop\test\Прайс2.xlsx")
p2.Worksheets("лист2").Range("Q3").Value = p1.Worksheets("лист1").Range("N35").Value
p2.Worksheets("лист2").Range("Q10").Value = p1.Worksheets("лист1").Range("M38").Value
p2.Close 1
End Sub
Изменено: yozhik - 8 Авг 2018 16:09:03
 
Цитата
Maria12345 написал:
Nordheim , А как указать если нужна одна ячейка и почему тогда значение не вставилось а Н/Д?
Без файлов ничего не могу сказать. А если нужна одна ячейка, то и нужно указывать одну ячейку, у вас же указан диапазон.
"Все гениальное просто, а все простое гениально!!!"
 
Maria12345, особо не вникал - гляньте.
Долго мучился с разными вариантами активации книги и копированием всех ячеек листа…
Пример кода с активацией книги, проверкой нужных листов и переносом полным копированием и массивом (только значения):
КОД
функция взята отсюда
Изменено: Jack Famous - 8 Авг 2018 16:27:56
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
yozhik, Ура, последний ваш скрипт сработал, Спасибо)
Подскажите а как будет правильно выглядеть шаблон скрипта если туда добавить еще копирование значений с еще одного листа этой же книги на другой лист. И как добавлять еще ячейки для копирования?
 
Если копируемые ячейки логически связать никак нельзя по каким-нибудь признакам, чтоб зациклить копирование, размножайте строчку 5 или 6, вписывайте нужные названия листов и адреса ячеек. В формате А1. У Вас формат на скрине R1C1
 
Немного скорректированный код из сообщения №18  :D
Код
Option Explicit

Sub ПРАЙС_Кнопка_Щелчок()
    Dim p1 As Worksheet
    Set p1 = Workbooks("Прайс1.xlsx").Worksheets("лист1")
    With GetObject("C:\Users\A.Maria\Desktop\test\Прайс2.xlsx").Worksheets("лист2")
        .[Q3].Value = p1.[N35].Value
        .[Q10].Value = p1.[M38].Value
        .Parent.Close 1
    End With
End Sub
Изменено: Nordheim - 9 Авг 2018 08:06:34
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
Maria12345 написал:
добавить еще копирование значений с еще одного листа этой же книги на другой лист. И как добавлять еще ячейки для копирования?
Аппетит приходит во время еды    :D  :D  :D
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, а в .Parent.Close True, часом, точка не пропущена?  ;)
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
Цитата
Jack Famous написал:
Nordheim , а в .Parent.Close True, часом, точка не пропущена?
Конечно пропущена   :(  . Спасибо!!!  :D
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, Спасибо большое за скоректированный код)
Буду очень рада если подскажите еще как добавлять туда еще книги и листы для копирования.
Вот так не работате(
Код
Option Explicit
Sub ПРАЙС_Кнопка_Щелчок()
Dim p1 As Worksheet, p2 As Worksheet
Set p1 = Workbooks("Прайс1.xlsx").Worksheets("лист1")
With GetObject("C:\Users\A.Maria\Desktop\test\Прайс2.xlsx").Worksheets("лист2")
.[Q3].Value = p1.[N35].Value
.[Q10].Value = p1.[M38].Value
.Parent.Close 1
End With
Set p2 = Workbooks("Прайс2.xlsx").Worksheets("лист2")
With GetObject("C:\Users\A.Maria\Desktop\test\Прайс2.xlsx").Worksheets("лист3")
.[Q5].Value = p2.[N36].Value
.[Q11].Value = p2.[M40].Value
.Parent.Close 1
End With
End Sub
Изменено: Maria12345 - 9 Авг 2018 12:58:37
 
Вот этой строкой вы присваиваете переменной лист закрытой книги
Код
Set p2 = Workbooks("Прайс2.xlsx").Worksheets("лист2")

Что и куда в итоге нужно переносить?
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
Nordheim написал:
Что и куда в итоге нужно переносить?
Нужно как и в первом случае скопировать значение определенных ячеек с определенной книги и листа на другую.
Пример:
С Книги "Прайс1", "лист1", "ячейка B1" в Книгу "Прайс2", "лист2", "ячейка Q3"
И С Книги "Прайс3" лист "лист5" в  Книгу "Прайс2", "лист2", "ячейка Q15"

Для одногой книги и листа работает а как добавить еще книги с которых надо копировать значения...не получается ничего(

Вот так макрос сработал:
Но в конечном файле куда должны перенестись значения ничего не показывается, просто пусто вот Скрин
Код
Option Explicit
Sub Цены()
    Dim p1 As Worksheet, p2 As Worksheet
    Set p1 = Workbooks("price.xlsm").Worksheets("Профнастил.")
    With GetObject("C:\Users\R.Danilyuk\Desktop\TEST\products1.xlsx").Worksheets("Products")
        .[Q48].Value = p1.[P25].Value
        .Parent.Close 1
    End With
Set p2 = Workbooks("price22.xlsx").Worksheets("Металлочерепица RAUNI")
    With GetObject("C:\Users\R.Danilyuk\Desktop\TEST\products1.xlsx").Worksheets("Products")
        .[Q2].Value = p2.[N19].Value
        .Parent.Close 1
    End With
End Sub
Изменено: Maria12345 - 9 Авг 2018 14:30:22
 
Цитата
Maria12345 написал:
Но в конечном файле куда должны перенестись значения ничего не показывается, просто пусто вот  Скрин
Вид>Отобразить>Клик по имени файла.

А что бы этого не было, перед
Код
.Parent.Close  1

можно поставить
Код
Windows(.Parent.Name).Visible = True
Изменено: Nordheim - 9 Авг 2018 15:00:38
"Все гениальное просто, а все простое гениально!!!"
Страницы: 1 2 След.
Читают тему (гостей: 1)
Наверх