PDA

Показать полную графическую версию : [решено] Office Excel - передача данных между листами


Strinteijer
18-09-2016, 18:20
Добрый день! Подскажите кто-нибудь возможно ли сделать так, чтобы данные со второго листа передавались на первый, фишка в том, чтобы именно на втором листе были формулы, а на первом только данные. Первый лист получается основной.
Спасибо заранее за ответ, ну или какие альтернативные варианты можете предложить.

Iska
18-09-2016, 19:21
возможно ли сделать так, чтобы данные со второго листа передавались на первый, фишка в том, чтобы именно на втором листе были формулы, а на первом только данные. »
Нет, нельзя. Любые ссылки из ячейки куда-то — это формулы.

ну или какие альтернативные варианты можете предложить. »
1. Ручками выделить данные на втором листе, скопировать в буфер обмена, переключиться на первый лист, сделать Специальную вставку, указав вставлять только данные.
2. То же самое, только макросом.
3. Написать функцию рабочего листа, которая будет вызываться при каждом изменении/пересчёте данных и будет делать указанное в первом пункте.

Вы не написали главного — зачем Вам такой серфинг в извращённой форме это?

Strinteijer
18-09-2016, 22:14
Скажем так, чтобы мое начальство отправляло "чистый лист" только с данными своим верхам=)

Strinteijer
18-09-2016, 22:33
1. Ручками выделить данные на втором листе, скопировать в буфер обмена, переключиться на первый лист, сделать Специальную вставку, указав вставлять только данные.
2. То же самое, только макросом.
3. Написать функцию рабочего листа, которая будет вызываться при каждом изменении/пересчёте данных и будет делать указанное в первом пункте. »
Подумаю над этими вариантами.... В принципе может и покатит первый вариант для них.... за совет спасибо))

Просто хочется сделать так, чтобы потом из-за этой ерунды не вызывали помочь разобраться, что начальник делает не так.... P.S. они у меня совсем далеки от компьютеров

Iska
18-09-2016, 22:55
Скажем так, чтобы мое начальство отправляло "чистый лист" только с данными своим верхам »
Тогда есть смысл сделать им «Одну кнопку», нажатием на которую будет запускаться макрос, который из создаст новый документ в определённом месте под определённым именем, скопирует туда содержимое значений ячеек текущего листа активного документа. Как Вам такое?

Сразу скажите — в Вашей версии Office сохранилась возможность добавлять свои кнопки на панели инструментов и привязывать к ним макросы (у меня Office 2003)?

okshef
18-09-2016, 23:34
Strinteijer, выделите диапазон с данными, скопируйте, на нужном листе через специальную вставку вставьте "Связанный рисунок". Классная вещь!
Обновляются данные - обновляется рисунок. Если же меняются параметры диапазона (кол-во строк или столбцов), то на рисунке достаточно исправить параметры диапазона

Strinteijer
19-09-2016, 00:09
скопируйте, на нужном листе через специальную вставку вставьте "Связанный рисунок". Классная вещь! »
в вашем варианте я так полагаю если его отделить от файла то в рисунке данные превратятся в нули.... или же все таки нет?

Сразу скажите — в Вашей версии Office сохранилась возможность добавлять свои кнопки на панели инструментов и привязывать к ним макросы (у меня Office 2003) »
У меня Office 2007 и я уже не помню даже как это делается, сам этим занимался раньше на 2003)

Iska
19-09-2016, 00:26
У меня Office 2007 »
А категория указана — 2010 ;).

Strinteijer
19-09-2016, 00:29
А нее покопался нашел где это)

Ой ошибся чутка)))

В общем, а само тело кнопки как должно выглядеть, чтобы оно перезаписало данные с этого листа и создавало новую книгу для сохранения?

okshef
19-09-2016, 00:53
Strinteijer, что вы имеете в виду под "отделить от файла"?
Как я понял эту "отвязку": со связанным рисунком с данными, находящимися в другом файле, я не экспериментировал. Но вы и не говорили о разных файлах.

P.S. Сменил категорию

Strinteijer
19-09-2016, 21:08
Но вы и не говорили о разных файлах »
Да извиняюсь что данного в самом начале не указал, но и саму тему на скорую руку сочинял....
Тогда есть смысл сделать им «Одну кнопку», нажатием на которую будет запускаться макрос »
Вот вроде сделал макросс, но как чтоб чисто данные копировал, пока только вышло скопировать ячейки

Sub Сохранить()
Range("A3:BL34").Select
Selection.Copy
ChDir "C:\Users\Алексей\Desktop"
Workbooks.Open Filename:="Основной.xlsx"
Range("A3:BL34").Select
ActiveSheet.Paste
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

Strinteijer
19-09-2016, 23:17
Считай сделал макрос, но мне нужна некоторая помощь, подскажите как выбрать книгу, которую нужно закрыть? запарился чет)

Strinteijer
20-09-2016, 01:34
Всё спасибо всем за советы, пару часов повозился и все таки сделал то, что хотел;) Вопрос решен... Всех благ вам=)

Iska
20-09-2016, 03:03
а само тело кнопки как должно выглядеть, чтобы оно перезаписало данные с этого листа и создавало новую книгу для сохранения? »
Примерно так:
Option Explicit

Sub Sample()
Dim objWorksheet As Worksheet
Dim i As Integer

Set objWorksheet = ActiveWorkbook.ActiveSheet

With Workbooks.Add
objWorksheet.Copy Before:=.Worksheets.Item(1)

Application.DisplayAlerts = False
For i = .Worksheets.Count To 2 Step -1
.Worksheets.Item(i).Delete
Next i
Application.DisplayAlerts = True

With .Worksheets.Item(1)
With .UsedRange
.Copy
.PasteSpecial Paste:=xlPasteValues
End With

.Range("A1").Select
End With

Application.DisplayAlerts = False
.SaveAs Filename:="C:\Мои проекты\0009\Output Result.xls"
Application.DisplayAlerts = True

.Close
End With

Set objWorksheet = Nothing
End Sub

Макрос можно поместить в персональную книгу макросов и, например, привязать его вызов на комбинацию горячих клавиш.

Strinteijer
20-09-2016, 16:44
For i = .Worksheets.Count To 2 Step -1
.Worksheets.Item(i).Delete
Next i »
А что этот цикл делает?
.SaveAs Filename:="C:\Мои проекты\0009\Output Result.xls" »
и да я помню как то можно делать с помощью всплывающего окна, т.е. выбирать куда сохранить и как обозвать

Ну а так я уже сделал макрос, правда другим способом

Iska
20-09-2016, 17:11
А что этот цикл делает? »
Удаляет все листы (пустые) из только что созданной Рабочей книги за исключением только что вставленного.

и да я помню как то можно делать с помощью всплывающего окна, т.е. выбирать куда сохранить и как обозвать »
Там прямо в справке приведён пример (правда, кривой):
Set NewBook = Workbooks.Add
Do
fName = Application.GetSaveAsFilename
Loop Until fName <> False
NewBook.SaveAs Filename:=fName

Strinteijer
20-09-2016, 17:13
Ммм спасибки на заметку себе оставлю... Думаю еще пригодится и не раз=)




© OSzone.net 2001-2012