изменить макрос, чтобы копировались только значения
amaksimus85
Дата: Воскресенье, 21.08.2022, 17:00 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
здравствуйте. что нужно поменять или добавить в макросе, чтобы копировались только значения, а не формулы (специальная вставка - значения)? [vba]Код
Sub CollectDataFromAllSheets() Dim ws As Worksheet Set wbCurrent = ActiveWorkbook Set wbReport = ActiveWorkbook wbCurrent.Worksheets(1).Range("A1:D1").Copy Destination:=wbReport.Worksheets(1).Range("A1") For Each ws In wbCurrent.Worksheets n = wbReport.Worksheets(1).Range("A1").CurrentRegion.Rows.Count Set rngData = ws.Range("A1:D5") rngData.Copy Destination:=wbReport.Worksheets(1).Cells(n + 1, 1) Next ws End Sub
[/vba]
здравствуйте. что нужно поменять или добавить в макросе, чтобы копировались только значения, а не формулы (специальная вставка - значения)? [vba]Код
Sub CollectDataFromAllSheets() Dim ws As Worksheet Set wbCurrent = ActiveWorkbook Set wbReport = ActiveWorkbook wbCurrent.Worksheets(1).Range("A1:D1").Copy Destination:=wbReport.Worksheets(1).Range("A1") For Each ws In wbCurrent.Worksheets n = wbReport.Worksheets(1).Range("A1").CurrentRegion.Rows.Count Set rngData = ws.Range("A1:D5") rngData.Copy Destination:=wbReport.Worksheets(1).Cells(n + 1, 1) Next ws End Sub
[/vba] amaksimus85
Ответить
Сообщение здравствуйте. что нужно поменять или добавить в макросе, чтобы копировались только значения, а не формулы (специальная вставка - значения)? [vba]Код
Sub CollectDataFromAllSheets() Dim ws As Worksheet Set wbCurrent = ActiveWorkbook Set wbReport = ActiveWorkbook wbCurrent.Worksheets(1).Range("A1:D1").Copy Destination:=wbReport.Worksheets(1).Range("A1") For Each ws In wbCurrent.Worksheets n = wbReport.Worksheets(1).Range("A1").CurrentRegion.Rows.Count Set rngData = ws.Range("A1:D5") rngData.Copy Destination:=wbReport.Worksheets(1).Cells(n + 1, 1) Next ws End Sub
[/vba] Автор - amaksimus85 Дата добавления - 21.08.2022 в 17:00
jun
Дата: Воскресенье, 21.08.2022, 18:53 |
Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация:
43
±
Замечаний:
0% ±
Сообщение отредактировал jun - Воскресенье, 21.08.2022, 18:53
Ответить
amaksimus85
Дата: Понедельник, 22.08.2022, 21:46 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
jun, я, так понимаю, нужно втавить этот код? [vba]Код
.Range("C1:C5").Copy .Range("D1:D5").PasteSpecial _ Operation:=xlPasteSpecialOperationAdd
[/vba] вопорос - куда? я, просто, в этом не силен
jun, я, так понимаю, нужно втавить этот код? [vba]Код
.Range("C1:C5").Copy .Range("D1:D5").PasteSpecial _ Operation:=xlPasteSpecialOperationAdd
[/vba] вопорос - куда? я, просто, в этом не силен amaksimus85
Ответить
Сообщение jun, я, так понимаю, нужно втавить этот код? [vba]Код
.Range("C1:C5").Copy .Range("D1:D5").PasteSpecial _ Operation:=xlPasteSpecialOperationAdd
[/vba] вопорос - куда? я, просто, в этом не силен Автор - amaksimus85 Дата добавления - 22.08.2022 в 21:46
jun
Дата: Вторник, 23.08.2022, 08:11 |
Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация:
43
±
Замечаний:
0% ±
amaksimus85, например так: [vba]Код
.Range("C1:C5").Copy .Range("D1:D5").PasteSpecial xlPasteValues
[/vba]
amaksimus85, например так: [vba]Код
.Range("C1:C5").Copy .Range("D1:D5").PasteSpecial xlPasteValues
[/vba] jun
Сообщение отредактировал jun - Вторник, 23.08.2022, 08:13
Ответить
Сообщение amaksimus85, например так: [vba]Код
.Range("C1:C5").Copy .Range("D1:D5").PasteSpecial xlPasteValues
[/vba] Автор - jun Дата добавления - 23.08.2022 в 08:11
Sancho
Дата: Вторник, 23.08.2022, 12:58 |
Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация:
19
±
Замечаний:
0% ±
2007, 2010, 2013
amaksimus85 , jun , добрый день! Просто, скопируйте равенством [vba]Код
.Range("F1:F5") = .Range("C1:C5").Value
[/vba]
amaksimus85 , jun , добрый день! Просто, скопируйте равенством [vba]Код
.Range("F1:F5") = .Range("C1:C5").Value
[/vba]Sancho
Ответить
Сообщение amaksimus85 , jun , добрый день! Просто, скопируйте равенством [vba]Код
.Range("F1:F5") = .Range("C1:C5").Value
[/vba]Автор - Sancho Дата добавления - 23.08.2022 в 12:58
amaksimus85
Дата: Вторник, 23.08.2022, 14:32 |
Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
.Range("C1:C5").Copy .Range("D1:D5").PasteSpecial xlPasteValues
куда это вставить или заменить именно в исходном макросе? ( макрос копирует данные со всех листов книги, листы всегда меняются)
.Range("C1:C5").Copy .Range("D1:D5").PasteSpecial xlPasteValues
куда это вставить или заменить именно в исходном макросе? ( макрос копирует данные со всех листов книги, листы всегда меняются)amaksimus85
Ответить
Сообщение .Range("C1:C5").Copy .Range("D1:D5").PasteSpecial xlPasteValues
куда это вставить или заменить именно в исходном макросе? ( макрос копирует данные со всех листов книги, листы всегда меняются)Автор - amaksimus85 Дата добавления - 23.08.2022 в 14:32
Sancho
Дата: Среда, 24.08.2022, 10:44 |
Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация:
19
±
Замечаний:
0% ±
2007, 2010, 2013
amaksimus85 , Замените строки[vba]Код
Set rngData = ws.Range("A1:D5") rngData.Copy Destination:=wbReport.Worksheets(1).Cells(n + 1, 1)
[/vba] на [vba]Код
With wbReport.Worksheets(1) .Range(.Cells(n + 1, 1), .Cells(n + 1 + 4, 4)) = ws.Range("A1:D5").Value End With
[/vba] PS: С файлом примером было бы проще понять что вам надо копировать без формул, так только на догадках, ибо в 9й строке вы тоже зачем-то копируете и вставляете на тот же самый лист Set wbCurrent = ActiveWorkbook Set wbReport = ActiveWorkbook wbCurrent .Worksheets(1).Range("A1:D1").Copy Destination:=wbReport .Worksheets(1).Range("A1")
amaksimus85 , Замените строки[vba]Код
Set rngData = ws.Range("A1:D5") rngData.Copy Destination:=wbReport.Worksheets(1).Cells(n + 1, 1)
[/vba] на [vba]Код
With wbReport.Worksheets(1) .Range(.Cells(n + 1, 1), .Cells(n + 1 + 4, 4)) = ws.Range("A1:D5").Value End With
[/vba] PS: С файлом примером было бы проще понять что вам надо копировать без формул, так только на догадках, ибо в 9й строке вы тоже зачем-то копируете и вставляете на тот же самый лист Set wbCurrent = ActiveWorkbook Set wbReport = ActiveWorkbook wbCurrent .Worksheets(1).Range("A1:D1").Copy Destination:=wbReport .Worksheets(1).Range("A1")Sancho
Ответить
Сообщение amaksimus85 , Замените строки[vba]Код
Set rngData = ws.Range("A1:D5") rngData.Copy Destination:=wbReport.Worksheets(1).Cells(n + 1, 1)
[/vba] на [vba]Код
With wbReport.Worksheets(1) .Range(.Cells(n + 1, 1), .Cells(n + 1 + 4, 4)) = ws.Range("A1:D5").Value End With
[/vba] PS: С файлом примером было бы проще понять что вам надо копировать без формул, так только на догадках, ибо в 9й строке вы тоже зачем-то копируете и вставляете на тот же самый лист Set wbCurrent = ActiveWorkbook Set wbReport = ActiveWorkbook wbCurrent .Worksheets(1).Range("A1:D1").Copy Destination:=wbReport .Worksheets(1).Range("A1")Автор - Sancho Дата добавления - 24.08.2022 в 10:44