下标超出范围粘贴

时间:2018-04-26 09:31:22

标签: excel vba

Private Sub CommandButton1_Click()

Sheets("Sheet1").Rows("22:41").EntireRow.Copy
Sheets("Sheet1").Rows("22:41").EntireRow.Insert

Dim x As Workbook
Dim y As Workbook

'## Open both workbooks first:
Set x = Workbooks.Open("C:\PatReports\T\carterreport1.csv")
Set y = Workbooks.Open("C:\PatReports\T\Carters.xlsm")

'Now, copy what you want from x:
x.Sheets("carterreport1").Range("E1:F17").Copy

'Now, paste to y worksheet:
y.Sheets("Sheet1").Range("D23:E39").PasteSpecial

'Close x:
x.Close


End Sub

我使用以下行获取超出范围的下标:

y.Sheets("Sheet1").Range("D23:E39").PasteSpecial

开头引用的工作表与工作表y相同的工作表

2 个答案:

答案 0 :(得分:0)

在所选单元格上使用ActiveSheet.Paste。

y.Activate
y.Sheets("Sheet1").Range("D23").Select
ActiveSheet.Paste

答案 1 :(得分:0)

您正尝试将包含 17 行的2列复制到2列 16 行。试试这个:

x.Sheets("carterreport1").Range("E1:F17").Copy y.Sheets("Sheet1").Range("D23")