所以我只是想创建一个复制和粘贴功能。我希望它比我在这里看到的一些类似的问题更具动态性。当我到达行(下面的代码) "set rng = ws.Range(Cells(i,7),Cells(i,12))“时,我得到错误1004Application- defined or object defined error。此外,该按钮位于名为"Forms“的工作表中。
我最初没有“set rng =ws”。在Range(Cells(i,7),Cells(i,12))之前,我没有收到错误,但它会从"forms“而不是"Goals”复制数据。由于excel电子表格的格式,函数中的数字是正确的,我相信(不确定这是否相关)。
最终,我试图让错误消失,并让它正常工作。欢迎任何帮助或建议。
Private Sub CommandButton1_Click()
Dim rng As Range
Dim ws As Worksheet
Set ws = Worksheets("Goals")
a = Worksheets("Goals").Cells(Rows.Count, 7).End(xlUp).Row
For i = 2 To a
If Worksheets("Goals").Cells(i, 20).Value = "Red" Then
ws.Activate
Set rng = ws.Range(Cells(i, 7), Cells(i, 12))
rng.Copy
Worksheets("Scorecard").Activate
b = Worksheets("Scorecard").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("Scorecard").Cells(b + 1, 2).Select
ActiveSheet.Paste
Worksheets("Goals").Activate
End If
Next
Application.CutCopyMode = False
End Sub
发布于 2018-06-06 03:26:45
我认为你需要包括ws。在两个单元格引用的前面,否则它们可能会从不同的工作表中提取到ws.Range调用:
Set rng = ws.Range(ws.Cells(i, 7), ws.Cells(i, 12))
发布于 2018-06-06 03:23:45
试一下,
Set rng = ws.Range(ws.Cells(i, 7), ws.Cells(i, 12))
定义范围的单元格需要定义与范围匹配的父工作表,
有关详细信息,请参阅Is the . in .Range necessary when defined by .Cells?。
https://stackoverflow.com/questions/50707436
复制相似问题