为什么这给我一个错误? 范围(单元格,单元格)select
我似乎得到这个错误,我不明白为什么,我知道我可以用字母范围,但我想学习如何以这种格式。
ThisWorkbook.Sheets("t").Range(Cells(1, 1), Cells(2, 2)).Value = ThisWorkbook.Sheets("1").Range(Cells(1, 1), Cells(2, 2)).Value
这里是我的testing代码,我添加了一些工作表对象,使它更容易阅读。 如果您使用的是工作表模块,则您也必须限定该Range
,如果您处于普通模块中,则可以将其忽略。
sub test() dim t as worksheet dim one as worksheet set t = ThisWorkbook.Sheets("t") set one = ThisWorkbook.Sheets("1") t.Range(t.Cells(1, 1), t.Cells(2, 2)).Value = one.Range(one.Cells(1, 1), one.Cells(2, 2)).Value 'Alternatively, what Jeeped is referencing in his comment: with ThisWorkbook.Sheets("t") .range(.cells(1, 1), .cells(2, 2).value = one.Range(one.cells(1, 1), one .Cells(2,2)).value end with end sub
@Sobigen的答案给出了一个很好的方法来限定你的引用来避免错误。
您也可以通过使用Resize
完全避免Cells
。
Sub UseResizeInsteadOfCells() ThisWorkbook.Sheets("t").Range("A1").Resize(2, 2).Value = _ ThisWorkbook.Sheets("1").Range("A1").Resize(2, 2).Value End Sub
我使用了A1
因为您在Worksheet
上的Cells(1,1)
是相同的引用。 您也可以使用.Cells(1,1).Resize(2,2)
并获得相同的结果,而不用担心Range
调用中的限定引用。