簡體   English   中英

下標超出范圍錯誤Excel復制/粘貼

[英]Subscript out of Range Error Excel Copy/Paste

我正在使用以下代碼嘗試將B4從工作表10復制並粘貼到工作表6,然后在工作表6的b列中輸入時間戳。

但是,我在*所在的代碼行中出現subscript out of range錯誤。

 Application.ScreenUpdating = False
 Dim copySheet As Worksheet
 Dim pasteSheet As Worksheet

 Set copySheet = ThisWorkbook.Sheets(Sheet10Name)   ****
 Set pasteSheet = ThisWorkbook.Sheets(Sheet6Name)

 copySheet.Range("B4").Copy
 pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
 Range("B" & (ActiveCell.Row)).Select
 ActiveCell.Value = Now()
 Application.CutCopyMode = False
 Application.ScreenUpdating = True

現在,顯然我沒有將now()插入到sheet6的b列中。

正確的最終結果

 Application.ScreenUpdating = False
 Dim copySheet As Worksheet
 Dim pasteSheet As Worksheet

 Set copySheet = ThisWorkbook.Sheets(Sheet10.Name)
 Set pasteSheet = ThisWorkbook.Sheets(Sheet6.Name)

 copySheet.Range("B4").Copy
 pasteSheet.Cells(pasteSheet.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
 pasteSheet.Cells(pasteSheet.Rows.Count, 1).End(xlUp).Offset(0, 1).Value = Now()
 Application.CutCopyMode = False
 Application.ScreenUpdating = True

我認為這就是您使用(也許濫用) Sheets()部分的方式。 嘗試這個:

Sub t()
Application.ScreenUpdating = False
 Dim copySheet As Worksheet
 Dim pasteSheet As Worksheet

 Set copySheet = ThisWorkbook.Sheets(Sheet10.Name)
 Set pasteSheet = ThisWorkbook.Sheets(Sheet6.Name)

 copySheet.Range("B4").Copy
 pasteSheet.Cells(pasteSheet.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
 pasteSheet.Range("B" & (ActiveCell.Row)).Select
 ActiveCell.Value = Now()
 Application.CutCopyMode = False
 Application.ScreenUpdating = True
End Sub

還要注意,我在您的Rows.CountRange("B" & Activecell...)部分中明確給出了工作表,這也應該有所幫助。 否則,切換工作表時可能會出現一些錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM