2010-10-10 7 views
3

Есть ли способ сделать это как одну копию строки или вставить без использования буфера обмена. копия одного диапазона - строка на другой диапазон пасты листа - целая строка. Мне нужны значения, а не формула.VBA: Скопируйте пасту без буфера обмена

Sheets("Data").Select 
ActiveCell.EntireRow.Copy 

Sheets("TSP").Select 
ActiveCell.PasteSpecial Paste:=xlPasteValues 
+0

Вы хотите только скопировать-вставить значения? Или также скопировать-вставить форматированную ячейку (я)? –

+0

Следуйте инструкциям здесь ==> http://excelexperts.com/copy-values-vba –

ответ

9

Этот код копирует значения (не формулы).

Sub a() 
    Worksheets("Sheet2").Range("TS").Value=Worksheets("Sheet1").Range("1:1").Value 
End Sub 

Где «TS» - это название диапазона (одна строка).

Это то, чего вы пытаетесь достичь?

Редактировать

Чтобы скопировать активную строку в Sheet2.Row2 (например), вы можете попробовать:

Sub a() 
Dim myrow As Integer 
myrow = ActiveWindow.RangeSelection.Row 
Worksheets("Sheet2").Range("2:2").Value = Worksheets("Sheet1").Rows(myrow).Value 
End Sub 

HTH!

+0

Я попытался ниже, но не смог: Sub a() Dim TS As Range Set TS = Worksheets ("Sheet2"). Диапазон («2: 2») Рабочие листы («Лист2»). Диапазон («TS»). Значение = Рабочие листы («Лист1»). Диапазон («1: 1»). Значение Конец Sub – Merlin

+0

1-й лист1, диапазон 1: 1 найти активную ячейку? И, как бы установить диапазон для activecell, wholeRow на sheet2 .... – Merlin

+0

Каков источник для вашей копии? Текущая строка? Определенная заранее определенная строка? –

1

По какой-то причине нет. PasteSpecial - все о буфере обмена.

Если вам нужны только значения, сделайте цикл For, копируя их.

Смежные вопросы