powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как копировать значения, а не формулы?
22 сообщений из 22, страница 1 из 1
Как копировать значения, а не формулы?
    #33349517
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Копирую макросом ячейки из одной книги в другую - копируются формулы. Как просто копировать значения ?
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33349529
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Range("A1").Value = Range("B1").Value

Range("A1").PasteSpecial(xlPasteValues)
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33349577
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из одной книги при необходимости открываем другую, используя Application.FileDialog(msoFileDialogOpen).Show
Далее в зависимости от задачи на одном из пяти листов открываемой книги делаем расчетик. Некоторые результаты этого расчета должны отобразиться в исходной книге на разных листах. Вот и все.
С открытием книги проблем нет... В открываемой книге к объекту привязал макрос, который копирует нужные ячейки и вставляет их в исходную книгу:
Worksheets("Tabelle1").Range("A4").Copy
Workbooks("INPUT MASK with macros.xls").Worksheets("INPUT").Activate
ActiveWorkbook.Worksheets("INPUT").Range("I3").Select
ActiveWorkbook.Worksheets("INPUT").Paste
Возникает проблема - копируется из ячейки не значение, а формула. Как копировать значение? А самое главное, как не привязываться к названию исходной книги (INPUT MASK with macros.xls)? Ведь файл в дальнейшем может быть переименован пользователем и тогда нифига работать не будет...
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33349594
NevaMind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так же ж ответили уже...
Код: plaintext
1.
2.
3.
4.
Worksheets("Tabelle1").Range("A4").Copy
Workbooks("INPUT MASK with macros.xls").Worksheets("INPUT").Activate
ActiveWorkbook.Worksheets("INPUT").Range("I3").Select
ActiveWorkbook.Worksheets("INPUT").PasteSpecial(xlPasteValues)


author
А самое главное, как не привязываться к названию исходной книги (INPUT MASK with macros.xls)? Ведь файл в дальнейшем может быть переименован пользователем и тогда нифига работать не будет...

Так у кода такая логика... Придумай другую - открывать, напр, окошко открытия нужного файла.
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33349621
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автороткрывать, напр, окошко открытия нужного файла

Извините, не въехал, как это?

А можно ли по-другому? Я ведь файл, из которго копирую, открываю тем, в который копирую. Можно ли как то кодом прописать, чтоб они друг друга узнавали?
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33349648
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал, как вы, NevaMind, сказали. Выдает ошибку в последней строке:
Worksheets("Tabelle1").Range("A4").Copy
Workbooks("INPUT MASK with macros.xls").Worksheets("INPUT").Activate
ActiveWorkbook.Worksheets("INPUT").Range("I3").Select
ActiveWorkbook.Worksheets("INPUT").PasteSpecial (xlPasteValues)
мол, PasteSpecial Method of Worksheet class failed

Что делать?
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33349661
NevaMind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так ты первую проблему решил?
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33349662
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Dim fileName as string
fileName = ThisWorkbook.Path + "\" + ThisWorkbook.Name
Если я правильно понял.
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33349679
NevaMind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так попробуй:
Код: plaintext
1.
2.
3.
4.
Worksheets("Tabelle1").Range("A4").Copy
Workbooks("INPUT MASK with macros.xls").Worksheets("INPUT").Activate
ActiveWorkbook.Worksheets("INPUT").Range("I3").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33349717
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, NevaMind, отлично работает!!! Сразу вопрос. А если мне допустим три ячейки нужно скопировать? Под каждую писать такую команду?

Если честно, k-nike , не знаю, как то, что вы мне написали, работает, но попробую ;-))
Спасибо!
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33349739
NevaMind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vovik5Спасибо, NevaMind, отлично работает!!! Сразу вопрос. А если мне допустим три ячейки нужно скопировать? Под каждую писать такую команду?

Если честно, k-nike , не знаю, как то, что вы мне написали, работает, но попробую ;-))
Спасибо!
Never Mind, в смысле пожалуйста!
Открою секрет: я просто запустил макрос, открыл редактор, и копипейстил то, что там получилось. Естественно, не надо под каждую. Объект Range может содержать много ячеек.
С открытием окна диалога "открыть" попробуйте помучать

Application.Dialogs(xlDialogOpen).Show
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33349764
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторС открытием окна диалога "открыть" попробуйте помучать
Это я давно сделал. Мне теперь надо бы как-то "отвязаться" от имен файлов.
То есть получается макрос под конкретный файл "INPUT MASK with macros.xls", а если его переименуют?
Я так и не понял, как работает:
авторDim fileName as string
fileName = ThisWorkbook.Path + "\" + ThisWorkbook.Name

Можно немного подробнее, пример какой-нибудь с двумя файлами...?
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33349912
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал так, в первой книге:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public MyName
Sub Open_Click()
'
' Open_Click Macro
' Macro recorded 27-10-2005
'
    MyName = ActiveWorkbook.Name
    
    Application.Dialogs(xlDialogOpen).Show
'
End Sub


А во второй книге так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub Oval111111_Click()
'
' Oval111111_Click Macro
' Macro recorded 28-10-2005
'
  Worksheets("Tabelle1").Range("A4").Copy
  Workbooks(MyName).Worksheets("INPUT").Activate
  ActiveWorkbook.Worksheets("INPUT").Range("I3").Select
  Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False

   
'
End Sub


Не работает блин. Похоже я чего напортачил с переименовыванием первой книги....
Как исправить????
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33349987
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты для чего код раскидал в 2 книги?
Этот код напиши в книге из которой открываешь другие файлы и куда копируешь.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub CopyRange()

Dim fileName As String
Application.Dialogs(xlDialogOpen).Show
fileName = ActiveWorkbook.Name 'в fileName имя открытого файла

Workbooks(fileName).Sheets("Tabelle1").Range("A4").Copy

ThisWorkbook.Worksheets("INPUT").Range("I3").PasteSpecial _
        Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
        
ThisWorkbook.Activate
End Sub
И постарайся метод .Select не использовать в своих программах.
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33350061
NevaMind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
k-nike
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub CopyRange()

Dim fileName As String
Application.Dialogs(xlDialogOpen).Show
fileName = ActiveWorkbook.Name 'в fileName имя открытого файла

Workbooks(fileName).Sheets("Tabelle1").Range("A4").Copy

ThisWorkbook.Worksheets("INPUT").Range("I3").PasteSpecial _
        Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
        
ThisWorkbook.Activate
End Sub
И постарайся метод .Select не использовать в своих программах.
2 k-nike Если не в лом, пояни, почему
2 Vovik Только нужно будет обработать случай, когда пользователь отменяет открытие файла - ActiveWorkbook.Name выдаст имя текущего файла, из которого код вызывается.
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33350098
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
k-nike
Спасибо, все работает.
авторТы для чего код раскидал в 2 книги?

Раскидал, потому что в открываемой книге сначала надо расчетик сделать, а уж после того как там все посчиталось, результаты расчета скопировать в первую книгу.

Все еще осложняется тем, что в открываемой книге 5 разных листов. В зависимости от вида расчета, пользователь активирует определенный лист, из которого потом и надо скопировать результат.

Моя идея была такая: из исходного файла просто макросом открывать вторую книгу (через Application.Dialogs(xlDialogOpen).Show. - потому что эта вторая книга может менять свой адресс). И в открываемой книге на каждом листе сделать объект, на котором висит макрос, копирующий результаты в исходную книгу.
Получается, мы этот файл открыли, посчитали в нем, кликнули на объект, результаты скинулись в первую книгу, вторая книга закрывается, предлагая себя сохранить Save as ...и все, шампанского и девочек!!!

Можно же так сделать?
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33350228
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NevaMind2 k-nike Если не в лом, пояни, почему
Если ты про .Select, то посмотри здесь одну из проблем.

Vovik5Моя идея была такая: из исходного файла просто макросом открывать вторую книгу (через Application.Dialogs(xlDialogOpen).Show. - потому что эта вторая книга может менять свой адресс).
А почему не открывать файл из меню Файл->Открыть?
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33350284
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторА почему не открывать файл из меню Файл->Открыть?
Это не так важно... Просто я думал, что если макросом открывать, то можно эти две книги связать между собой, чтобы потом результаты расчетов из открываемой книги скопировать в ту, из которой открываем.....
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33350580
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vovik5 авторА почему не открывать файл из меню Файл->Открыть?
Это не так важно... Просто я думал, что если макросом открывать, то можно эти две книги связать между собой, чтобы потом результаты расчетов из открываемой книги скопировать в ту, из которой открываем.....

все можно только продумать надо!

допустим в открываемой книге(книга2) есть скрытый лист в который заносится информация - имя книги(книга1) из которой ты открываешь втоторую и др.

сделал ты свои расчеты и нажал на кнопку а кнопка делает
Код: plaintext
1.
MyList = ThisWorkbook.Worksheets("имя скрытого листа").range("адрес ячейки").value
Workbooks(MyList).Sheets("INPUT").Range("I3").Value = Worksheets("Tabelle1").Range("A4").value

чем отличается програмист от обычного человека

у человека спросишь: а можно сделать...?
человек думает а потом отвечает...
у програмиста спросишь: а можно сделать...?
програмист отвечает - можно
а потом думает как это сделать
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33350633
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vcodorдопустим в открываемой книге(книга2) есть скрытый лист в который заносится информация - имя книги(книга1) из которой ты открываешь втоторую и др.

Идея отличная, только я исполнение не очень понимаю...
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33350774
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vovik5 vcodorдопустим в открываемой книге(книга2) есть скрытый лист в который заносится информация - имя книги(книга1) из которой ты открываешь втоторую и др.

Идея отличная, только я исполнение не очень понимаю...

в книге2 добавь лист назови "Temp"
ячейке "A1" - присвой имя "book1"
дальше скрой лист (формат - лист - скрыть )

вместо Application.Dialogs(xlDialogOpen).Show
используй
Код: plaintext
1.
2.
3.
4.
5.
Fil = Application.GetOpenFilename(" Файлы Excel (*.xls),*.xls",  1 , "Выберете фаил")
    If Fil = False Then Exit Sub
    Workbooks.Open(Fil, , True)
     fil1 = сдесь определяешь имя файла(работа с тектовой сторокой)

Workbooks(fil1).Worksheets("Temp").range(book1).value = fil1

и

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub Oval111111_Click()
'
' Oval111111_Click Macro
' Macro recorded 28-10-2005
MyName = Worksheets("Temp").range(book1).value
  Worksheets("Tabelle1").Range("A4").Copy
  Workbooks(MyName).Worksheets("INPUT").Range("I3").Value = Worksheets("Tabelle1").Range("A4").Value
   
'
End Sub
...
Рейтинг: 0 / 0
Как копировать значения, а не формулы?
    #33350847
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, vkodor!
P.S. между форумами больше бегать не буду!.. Буду вам на мыло вопросы бросать ;-)))
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как копировать значения, а не формулы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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