EXCEL多个sheet合并报错,代码如下,总是一会报错一会不报错有没有大神告诉我怎么回事

Sub?hz()

Dim?bt,?i,?r,?c,?n,?first?As?Long

bt?=?1

Cells.Clear

For?i?=?1?To?Sheets.Count

If?Sheets(i).Name?<>?ActiveSheet.Name?Then

If?first?=?0?Then

c?=?Sheets(i).UsedRange.Columns.Count

Sheets(i).Range("A1").Resize(bt,?c).Copy?Range("A1")

n?=?bt?+?1:?first?=?1

End?If

r?=?Sheets(i).Cells(Rows.Count,?"A").End(xlUp).Row

'预防空表格的拷贝出错

If?r?>?bt?Then?Sheets(i).Range("A"?&?bt?+?1).Resize(r?-?1,?c).Copy?Range("A"?&?n)

n?=?n?+?r?-?bt

End?If

Next

End?Sub