2014-10-20 21 views
0

为什么以下正常工作的任何想法:无法对使用范围复制方法(细胞(N,N))在VBA

Sheets("dados").Range("A2:A4").Copy Destination:=Sheets("Resultado").Range("A2:A4") 

虽然这不?

Sheets("dados").Range(Cells(2, 1), Cells(4, 1)).Copy Destination:=Sheets("Resultado").Range(Cells(2, 1), Cells(4, 1)) 

我也做了一个测试,只是试图设置字体为粗体。如果我使用范围(“A2:A4”),我可以更改任何工作表,即使没有选择它。但是,如果我使用范围(单元格(2,1),单元格(4,1)),它仅在选择表单时起作用。

我想使用与单元格参数范围的原因是它更容易使用迭代器而无需转换为字符串。

非常感谢!

回答

2

你需要参考表细胞在。

Range(Sheets("dados").Cells(2, 1), Sheets("dados").Cells(4, 1)).Copy Destination:=Sheets("Resultado").Range(Sheets("Resultado").Cells(2, 1), Sheets("Resultado").Cells(4, 1)) 

您可以通过将with语句为他们的一个简化它一点点。

With Sheets("dados") 
    .Range(.Cells(2, 1), .Cells(4, 1)).Copy Destination:=Sheets("Resultado").Range(Sheets("Resultado").Cells(2, 1), Sheets("Resultado").Cells(4, 1)) 
End With 
+0

感谢mattboy认为这样做是 – Lucas 2014-10-20 13:41:30

+0

我还没有测试的范围之前的床单,并能正常工作:'范围(表(“dados”)细胞(2,1),表(“dados。 “).Cells(4,1))。复制目的地:=范围(表格(”Resultado“)。单元格(2,1),表格(”Resultado“)。单元格(4,1))' – Lucas 2014-10-20 13:45:35

+0

好点,我会编辑答案! – mattboy 2014-10-20 13:53:18