【问题标题】:How to get row count and use in range如何获取行数并在范围内使用
【发布时间】:2017-07-06 01:32:25
【问题描述】:

我正在尝试获取电子表格中的行数,然后使用该数字来选择一个范围:

Dim lastrow As Long
lastrow = Cells(Rows.Count, "A").End(xlUp).Row
Range("C1").Select
ActiveCell.Copy
Range("C2:C & lastrow").Select
ActiveSheet.Paste
Range("A2:A & lastrow").Select
ActiveSheet.Paste

所以基本上我试图将 C1 的内容复制到 A 和 C 列中的每个单元格中。但是,在我的 Range 语句中使用 C:C 和 A:A 会导致在我粘贴时添加额外的行。所以我真的需要能够获得行数,然后在范围内使用它。有人可以帮我解决这个问题吗?

谢谢,

  • 杰西

【问题讨论】:

  • 我相信你不应该封装你的变量。 Range("C2:C" & lastrow).Select

标签: excel vba


【解决方案1】:

如果我没记错的话,这段代码不应该编译。你的代码是这样的:

Dim lastrow As Long
lastrow = Cells(Rows.Count, "A").End(xlUp).Row
Range("C1").Select
ActiveCell.Copy
Range("C2:C & lastrow").Select ' <----
ActiveSheet.Paste
Range("A2:A & lastrow").Select ' <----
ActiveSheet.Paste

它应该是:

Dim lastrow As Long
lastrow = Cells(Rows.Count, "A").End(xlUp).Row
Range("C1").Select
ActiveCell.Copy
Range("C2:C" & lastrow).Select
ActiveSheet.Paste
Range("A2:A" & lastrow).Select
ActiveSheet.Paste

这忽略了选择、激活、粘贴等的低效率,但它解决了您的问题(或者至少应该解决,除非我真的错过了什么)。

【讨论】:

  • 啊,很好,我什至没有注意到 &amp; lastrow 在字符串文字中。 :D
  • @A.S.H 这发生在我们最优秀的人身上 :)
猜你喜欢
  • 2022-01-08
  • 2017-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 2020-10-23
  • 1970-01-01
  • 2016-05-31
相关资源
最近更新 更多