【发布时间】:2015-05-18 16:20:15
【问题描述】:
我有一段代码在其中循环查找工作表中最高的空白单元格,然后将另一张工作表中的数据粘贴到以第一个空白单元格开头的范围内。这是我到目前为止的代码:
子按钮644_Click()
Dim ReferenceCell As Integer
For r = 1 To 2000
If Sheets("Summary").Range("A" & r).Value = vbNullString Then
ReferenceCell = r + 1
GoTo A
End If
Next r
A:s = r + 9
Sheets("Summary").Range("A" & r:"Q" & s).Select
End Sub
调试器在 A: 之后的行结束它。我需要代码类似于“Range("A1:Q" & s)”,而不是“A(1)”,它需要是“A(r)”。 此代码最终会从不同的工作表中粘贴特殊的 A1:Q10 表格,并循环遍历,因此每次运行宏时,它都会检查空白单元格,然后将该表格粘贴到先前粘贴的表格下方。这仍处于非常早期的阶段。任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
您的代码中没有“A:”。请更新问题。
-
找到最后一个空白单元格或行的更好方法。示例见:stackoverflow.com/questions/71180/…
-
我添加了A,虽然它不影响代码。谢谢你关于找到最后一行的建议,它可能比我的方法更容易
-
您的代码包含
.Range("A" & r:"Q" & s),而:可能应该在引号内与另一个连接运算符&。.Range("A" & r & ":Q" & s)。我会说有更好的方法可以找到最后一行。这是一个不错的回顾:stackoverflow.com/questions/11169445/… -
完美的答案,就像一个魅力,拜伦。感谢您的帮助!
标签: excel vba loops for-loop range