下标超出范围错误Excel复制/粘贴

我正在使用下面的代码来尝试复制粘贴B4从表10到表6,然后在表6的列b中input一个时间戳。

但是,我得到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...)部分,这也应该有帮助。 没有这个,你在切换工作表时可能会遇到一些错误。