此问题已在此处有答案:
Why does Range work, but not Cells?(1个答案)
4天前关闭。
我已经编辑了我原来的问题,因为我的源单元格包含超链接,我需要复制到目标单元格,所以我刚刚意识到,使用.value和.resize的解决方案对我不起作用。
使用VBA,我需要使用Cells(R,C)方法(而不是Range("A1:A10")
方法)将一系列单元格从一个工作表复制到同一工作簿中的另一个工作表,因为我的行/列是我正在使用代码检测的变量。因此,我不能硬编码行号,因为最后一行会发生变化。
最初我追求使用.value属性而不是.value属性,但那是在我意识到我的超链接不会被复制之前。
我从这里的回复中了解到,Cells(r,c)引用假设工作表是ActiveSheet(而Range()不是),并且由于Source Sheet和Target Sheet不能同时都是ActiveSheet,这就产生了一个问题。
这段代码是对我最初问题的回应,但不幸的是,这导致了一个400运行时错误。
Sub CopyCells()
Const TargetSheet = "Sheet1"
Const SourceSheet = "Sheet2"
'Goal is to copy the cells Sheets("Sheet2").Range("B10:B19") to Sheets("Sheet1").Range("F1:F10")
'Below line of code gives 400 error
Sheets(SourceSheet).Range(Cells(10, 2), Cells(19, 2)).Copy (Sheets(TargetSheet).Cells(1, 6))
End Sub
有人能告诉我我做错了什么吗?
2条答案
按热度按时间rryofs0p1#
计算行数并使用
.Resize
zour9fqk2#
可以使用Range.Copy方法而不是=
可以成为
不幸的是,我是一个使用VBA的新手,所以我不确定使用=符号时的语法…
希望我的回答能满足你的需求:)