对VBA上的Range(Cells(n,n))不能使用复制方法

任何想法为什么以下工作正常:

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)) 

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

我想使用与单元格参数范围的原因是,它更容易使用迭代器,而不必转换为string。

非常感谢!

你需要参考细胞所在的图纸。

 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