2014-02-28 107 views
0

我在这里变得非常沮丧。凌workbooks("Book2.xlsx").Activate是给我下面的代码激活不同的工作簿,下标超出范围

Sub Macro1() 
' 
' Macro1 Macro 
' 
Dim i As Long, j As Integer, lastrow1 As Long, lastrow2 As Long, mntname As String 
i = 1 
lastrow1 = Range("A" & Rows.Count).End(xlUp).Row 

' 
Do While i < lastrow1 
j = month(Range("A" & i)) 
mntname = monthname(j) 
Rows(i & ":" & i).Copy 
Workbooks("Book2.xlsx").Activate 
Sheets(mntname).Range("A" & Rows.Count + 1).PasteSpecial 
Workbooks("Book2.xls").Activate 
i = i + 1 
Loop 
End Sub 

Book2 is一个Subscript out of range错误是开放的,随时可以使用。 A是床单。 mntname当高亮显示正确转换为一个sting值是Book2中的工作表之一

任何人都可以告诉我什么是错误的,以及如何解决?

+0

因此,您有两个工作簿打开,名为Book2但具有不同的扩展名? –

+0

对不起,我有book1和book2(创意名称),我得到从book1到book2的错误 –

+0

我从中复制的是启用宏。然而,检查book2的属性,它是.xlsx我试图更改它的名称和代码,没有运气 –

回答

2

这只是

Workbooks("Book2").Activate. 

工作簿的名称只是Book2Book2.xls是文件的名称。