2013-07-03 3 views
0

Я новичок в Visual Basic в Excel, и я изо всех сил пытаюсь скопировать одну ячейку на другую на другом листе. Например, если Sheet1 имеет следующее:Копирование из одной ячейки в другую ячейку на другом листе?

Animal Owner 
Dog  John 
Cat  Gabe 

И Sheet2 просто пустым, предполагая Animal и Owner находятся в разных столбцах и в columns A и B соответственно, я просто хотел, чтобы скопировать Dog в A2 (Animal в ячейку A1) на лист два, например.

Я попытался посмотреть вещи онлайн и попробовал:

Dim dataSheet As Worksheet 
Set dataSheet = ThisWorkbook.Sheets("Sheet1") 
Dim DestinationSheet As Worksheet 
Set DestinationSheet = ThisWorkbook.Sheets("Sheet2") 

dataSheet.Range("A2").Copy DestinationSheet.Range("A2") 

Но я получаю сообщение об ошибке, что:

Ошибка выполнения «1004»: «Range» метод объекта Не удалось выполнить «Рабочий стол».

Я просто хочу скопировать из одной ячейки в другую на другой рабочий лист. Если у кого-то есть идея сделать это, это было бы здорово! Благодаря!

ответ

0
dim x as integer 
x = 1 
do until Sheets("Sheet1").Range("A" & x).Value = "" 
Sheets("Sheet2").Range("A" & x).Value = Sheets("Sheet1").Range("A" & x).Value 
x = x + 1 
Loop 

Я не знаю, как хорошо это работает для перемещения формул и форматирования, но оно отлично подходит для значений.

+0

Если бы я хотел, чтобы переместить строки вокруг, что я просто затемнить й как строка, и это будет работать одинаково? – user1871869

+0

В этом случае x является просто контр-символом, обозначающим строку. – Acantud

+0

Ах ладно. Я попробую это прямо сейчас и дам вам знать! Благодаря! – user1871869

0

Вот пример, который избавляется от необходимости цикла, это будет необходимо более надежным и быстрое выполнение:

Sub Sample() 

Dim lngSh1LastARow As Long 

'Get last row in Sheet1 Column A 
lngSh1LastARow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row 

'Select the same range but on sheet 2 
With Sheets("Sheet5").Range("A1:A" & lngSh1LastARow) 

    'Set sheet2's A column = to Sheet 1 A column 
    .FormulaR1C1 = "=Sheet1!RC" 

    'Remove all formulas from Sheet2 column A and retain just the value 
    'Note: This step is optional If sheet1 Column A has formulas and you would 
    'like to retain those formulas on sheet2 as well simply delete or 
    'Comment out the next line 
    .Value = .Value 

End With 

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