gpt4 book ai didi

excel - 复制/粘贴范围(单元格(

转载 作者:行者123 更新时间:2023-12-04 22:19:40 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Why does Range work, but not Cells?

(1 个回答)


1年前关闭。




我想复制并粘贴一个动态范围。我尝试运行此代码,但它不起作用。
反而

"Runtime error 1004"


出现。
Worksheets("Data").Range(Cells(1, 1), Cells(10, 2)).Copy Worksheets("Tabelle1").Range(Cells(1, 1), Cells(10, 2)) 
如果我使用 Range("A1:A5") ,它工作正常。

最佳答案

问题是 VBA 不知道这些单元格在哪个工作表中 Cells(1, 1), Cells(10, 2)是因为你没有指定它。因此你得到一个错误。
确保为 指定工作表每 Cells , Range , RowsColumns目的。如果您没有指定它,Excel 会开始猜测您指的是哪张工作表(基于编写代码的范围),它可能会假设与您所做的不同。在大多数情况下,Cells不指定工作表将与 ActiveSheet.Cells 相同.
所以正确的是:

Worksheets("Data").Range(Worksheets("Data").Cells(1, 1), Worksheets("Data").Cells(10, 2)).Copy Worksheets("Tabelle1").Range(Worksheets("Tabelle1").Cells(1, 1), Worksheets("Tabelle1").Cells(10, 2)) 
或更好:
Dim Source As Range
With ThisWorkbook.Worksheets("Data")
Set Source = .Range(.Cells(1, 1), .Cells(10, 2))
End With

Dim Destination As Range
With ThisWorkbook.Worksheets("Tabelle1")
Set Destination = .Range(.Cells(1, 1), .Cells(10, 2))
End With

Source.Copy Destination
或类似的东西
Dim wsSrc As Worksheet
Set wsSrc = ThisWorkbook.Worksheets("Data")

Dim wsDest As Worksheet
Set wsDest = ThisWorkbook.Worksheets("Tabelle1")

wsSrc.Range(wsSrc.Cells(1, 1), wsSrc.Cells(10, 2)).Copy wsDest.Range(wsDest.Cells(1, 1), wsDest.Cells(10, 2))

关于excel - 复制/粘贴范围(单元格(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65178168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com