Показать полную графическую версию : [решено] Office Excel - передача данных между листами
Strinteijer
18-09-2016, 18:20
Добрый день! Подскажите кто-нибудь возможно ли сделать так, чтобы данные со второго листа передавались на первый, фишка в том, чтобы именно на втором листе были формулы, а на первом только данные. Первый лист получается основной.
Спасибо заранее за ответ, ну или какие альтернативные варианты можете предложить.
возможно ли сделать так, чтобы данные со второго листа передавались на первый, фишка в том, чтобы именно на втором листе были формулы, а на первом только данные. »
Нет, нельзя. Любые ссылки из ячейки куда-то — это формулы.
ну или какие альтернативные варианты можете предложить. »
1. Ручками выделить данные на втором листе, скопировать в буфер обмена, переключиться на первый лист, сделать Специальную вставку, указав вставлять только данные.
2. То же самое, только макросом.
3. Написать функцию рабочего листа, которая будет вызываться при каждом изменении/пересчёте данных и будет делать указанное в первом пункте.
Вы не написали главного — зачем Вам такой серфинг в извращённой форме это?
Strinteijer
18-09-2016, 22:14
Скажем так, чтобы мое начальство отправляло "чистый лист" только с данными своим верхам=)
Strinteijer
18-09-2016, 22:33
1. Ручками выделить данные на втором листе, скопировать в буфер обмена, переключиться на первый лист, сделать Специальную вставку, указав вставлять только данные.
2. То же самое, только макросом.
3. Написать функцию рабочего листа, которая будет вызываться при каждом изменении/пересчёте данных и будет делать указанное в первом пункте. »
Подумаю над этими вариантами.... В принципе может и покатит первый вариант для них.... за совет спасибо))
Просто хочется сделать так, чтобы потом из-за этой ерунды не вызывали помочь разобраться, что начальник делает не так.... P.S. они у меня совсем далеки от компьютеров
Скажем так, чтобы мое начальство отправляло "чистый лист" только с данными своим верхам »
Тогда есть смысл сделать им «Одну кнопку», нажатием на которую будет запускаться макрос, который из создаст новый документ в определённом месте под определённым именем, скопирует туда содержимое значений ячеек текущего листа активного документа. Как Вам такое?
Сразу скажите — в Вашей версии Office сохранилась возможность добавлять свои кнопки на панели инструментов и привязывать к ним макросы (у меня Office 2003)?
Strinteijer, выделите диапазон с данными, скопируйте, на нужном листе через специальную вставку вставьте "Связанный рисунок". Классная вещь!
Обновляются данные - обновляется рисунок. Если же меняются параметры диапазона (кол-во строк или столбцов), то на рисунке достаточно исправить параметры диапазона
Strinteijer
19-09-2016, 00:09
скопируйте, на нужном листе через специальную вставку вставьте "Связанный рисунок". Классная вещь! »
в вашем варианте я так полагаю если его отделить от файла то в рисунке данные превратятся в нули.... или же все таки нет?
Сразу скажите — в Вашей версии Office сохранилась возможность добавлять свои кнопки на панели инструментов и привязывать к ним макросы (у меня Office 2003) »
У меня Office 2007 и я уже не помню даже как это делается, сам этим занимался раньше на 2003)
У меня Office 2007 »
А категория указана — 2010 ;).
Strinteijer
19-09-2016, 00:29
А нее покопался нашел где это)
Ой ошибся чутка)))
В общем, а само тело кнопки как должно выглядеть, чтобы оно перезаписало данные с этого листа и создавало новую книгу для сохранения?
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
Всё спасибо всем за советы, пару часов повозился и все таки сделал то, что хотел;) Вопрос решен... Всех благ вам=)
а само тело кнопки как должно выглядеть, чтобы оно перезаписало данные с этого листа и создавало новую книгу для сохранения? »
Примерно так:
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" »
и да я помню как то можно делать с помощью всплывающего окна, т.е. выбирать куда сохранить и как обозвать
Ну а так я уже сделал макрос, правда другим способом
А что этот цикл делает? »
Удаляет все листы (пустые) из только что созданной Рабочей книги за исключением только что вставленного.
и да я помню как то можно делать с помощью всплывающего окна, т.е. выбирать куда сохранить и как обозвать »
Там прямо в справке приведён пример (правда, кривой):
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
vBulletin v3.6.4, Copyright ©2000-2024, Jelsoft Enterprises Ltd.