简单的范围复制问题

我知道我是密集的,但我不能为我的生活find一个简单的(剪贴板免费)复制行动的正确语法:

Sheets("B").Range(Cells(X, Y), Cells(X, Y+ 3)).value = _ Sheets("A").Range(Cells(1, Z), Cells(1, Z+ 3)).value 

您需要限定一个或两个Cells的使用,以便VBA知道哪些表单包含这些单元格:

 Sheets("B").Range(Sheets("B").Cells(X, Y), Sheets("B").Cells(X, Y+ 3)).Value = _ Sheets("A").Range(Sheets("A").Cells(1, Z), Sheets("A").Cells(1, Z+ 3)).Value 

我会从一个已知的引用(如“A1”)开始,并使用.Offset().Resize()方法来“select”你想要的值。 这样可以保证获得相同数量的行和列。

 Sheets("A").Range("A1").Offset(0,Z-1).Resize(1,3).Value = _ Sheets("B").Range("A1").Offset(X-1,Y-1).Resize(1,3).Value 

这与工作表中的命名范围结合使用效果最佳

 Sheets("A").Range("TableA").Offset(0,X-1).Resize(n,1).Value = _ Sheets("B").Range("TableB").Offset(0,Y-1).Resize(n,1).Value 

用于将TableBTableB n行复制到TableATableA