Копирование и вставка значений в Excel VBA — распространенная задача, которую можно выполнить несколькими способами. В этой статье мы рассмотрим пять эффективных методов с примерами кода, которые помогут вам скопировать весь лист и вставить только значения. Следуя этим методам, вы сможете оптимизировать код VBA и повысить производительность приложений Excel.
Метод 1: копирование и вставка значений с помощью метода PasteSpecial
Sub CopyPasteValues_Method1()
Sheets("Sheet1").UsedRange.Copy
Sheets("Sheet2").Range("A1").PasteSpecial xlPasteValues
End Sub
Метод 2. Копирование и вставка значений с использованием свойства Value
Sub CopyPasteValues_Method2()
Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
Set sourceSheet = ThisWorkbook.Sheets("Sheet1")
Set targetSheet = ThisWorkbook.Sheets("Sheet2")
targetSheet.UsedRange.Value = sourceSheet.UsedRange.Value
End Sub
Метод 3. Копирование и вставка значений путем их непосредственного присвоения
Sub CopyPasteValues_Method3()
Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
Set sourceSheet = ThisWorkbook.Sheets("Sheet1")
Set targetSheet = ThisWorkbook.Sheets("Sheet2")
targetSheet.Range("A1").Resize(sourceSheet.UsedRange.Rows.Count, _
sourceSheet.UsedRange.Columns.Count).Value = _
sourceSheet.UsedRange.Value
End Sub
Метод 4. Копирование и вставка значений с использованием массивов
Sub CopyPasteValues_Method4()
Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
Dim sourceData As Variant
Set sourceSheet = ThisWorkbook.Sheets("Sheet1")
Set targetSheet = ThisWorkbook.Sheets("Sheet2")
sourceData = sourceSheet.UsedRange.Value
targetSheet.Range("A1").Resize(UBound(sourceData, 1), UBound(sourceData, 2)).Value = sourceData
End Sub
Метод 5. Копирование и вставка значений с помощью метода автофильтра
Sub CopyPasteValues_Method5()
Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
Set sourceSheet = ThisWorkbook.Sheets("Sheet1")
Set targetSheet = ThisWorkbook.Sheets("Sheet2")
sourceSheet.UsedRange.AutoFilter
sourceSheet.UsedRange.SpecialCells(xlCellTypeVisible).Copy
targetSheet.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
sourceSheet.AutoFilterMode = False
End Sub
Копирование и вставка значений в Excel VBA — рутинная задача, которую можно выполнить различными методами. В этой статье мы рассмотрели пять эффективных методов копирования всего листа и вставки только значений. Реализовав эти методы, вы сможете оптимизировать код VBA и повысить производительность приложений Excel.