首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >设置rng时出现Excel错误1004

设置rng时出现Excel错误1004
EN

Stack Overflow用户
提问于 2018-06-06 03:16:50
回答 2查看 171关注 0票数 0

所以我只是想创建一个复制和粘贴功能。我希望它比我在这里看到的一些类似的问题更具动态性。当我到达行(下面的代码) "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电子表格的格式,函数中的数字是正确的,我相信(不确定这是否相关)。

最终,我试图让错误消失,并让它正常工作。欢迎任何帮助或建议。

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-06 03:26:45

我认为你需要包括ws。在两个单元格引用的前面,否则它们可能会从不同的工作表中提取到ws.Range调用:

代码语言:javascript
复制
Set rng = ws.Range(ws.Cells(i, 7), ws.Cells(i, 12))
票数 2
EN

Stack Overflow用户

发布于 2018-06-06 03:23:45

试一下,

代码语言:javascript
复制
Set rng = ws.Range(ws.Cells(i, 7), ws.Cells(i, 12))

定义范围的单元格需要定义与范围匹配的父工作表,

有关详细信息,请参阅Is the . in .Range necessary when defined by .Cells?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50707436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档