从一个单元格复制到另一个单元格上的另一个单元格?

时间:2013-07-03 20:46:40

标签: excel vba copy cell

我是Excel上的Visual Basic新手,我一直在努力尝试将一个单元格复制到另一个单元格上。例如,如果Sheet1具有以下内容:

Animal    Owner
Dog       John
Cat       Gabe

Sheet2只是空白,假设AnimalOwner位于不同的列中且分别位于columns AB,我只想复制例如,Dog进入A2(动物在单元格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':对象'_Worksheet'的方法'Range'失败。

我只是想从一个单元格复制到另一个单元格到另一个工作表上。如果有人有任何想法这样做,那将是伟大的!谢谢!

2 个答案:

答案 0 :(得分: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

我不知道这对于移动公式和格式化有多好,但它适用于值。

答案 1 :(得分: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