2017-07-05 78 views
0

我想獲得的行數在電子表格中,然後用數字來選擇一個範圍內,例如使用:如何獲得的行數和範圍

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會導致在粘貼時添加額外的行。所以我真的需要能夠獲得行數,然後在範圍內使用它。有人可以幫我弄這個嗎?

感謝,

  • 傑西
+0

我相信你不應該封裝你的變量。 'Range(「C2:C」&lastrow).Select' – gravity

回答

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 

這忽略選擇,激活,粘貼等的低效率,但它解決您的問題(或者至少是應該的,除非我我真的錯過了一些東西)。

+0

啊,很好,我甚至沒有注意到'&lastrow'在字符串文字裏面。 :D –

+0

@ A.S.H它發生在我們最好的:) –

相關問題