|
Sub 合并()
Application.ScreenUpdating = False
For Each sht In Sheets
If Not (sht.Name = "工资汇总" Or sht.Name = "工资汇总bak") Then
sht.Select
m_row = sht.Range("b65535").End(xlUp).Row
For i = 1 To m_row
m_a = sht.Cells(i + 5, 2)
Sheets("工资汇总").Select
Set j = Range("b:b").Find(m_a, , , 1)
If Not j Is Nothing Then
Sheets("工资汇总").Cells(j.Row, 18) = Sheets("工资汇总").Cells(j.Row, 18) + sht.Cells(5 + i, 18)
Else
m_row1 = Sheets("工资汇总").Range("b65535").End(xlUp).Row
Sheets("工资汇总").Cells(m_row1 + 1, 2) = sht.Cells(i + 5, 2)
Sheets("工资汇总").Cells(m_row1 + 1, 3) = sht.Cells(i + 5, 3)
Sheets("工资汇总").Cells(m_row1 + 1, 4) = sht.Cells(i + 5, 4)
Sheets("工资汇总").Cells(m_row1 + 1, 5) = sht.Cells(i + 5, 5)
Sheets("工资汇总").Cells(m_row1 + 1, 6) = sht.Cells(i + 5, 6)
Sheets("工资汇总").Cells(m_row1 + 1, 7) = sht.Cells(i + 5, 7)
Sheets("工资汇总").Cells(m_row1 + 1, 8) = sht.Cells(i + 5, 8)
Sheets("工资汇总").Cells(m_row1 + 1, 9) = sht.Cells(i + 5, 9)
Sheets("工资汇总").Cells(m_row1 + 1, 10) = sht.Cells(i + 5, 10)
Sheets("工资汇总").Cells(m_row1 + 1, 11) = sht.Cells(i + 5, 11)
Sheets("工资汇总").Cells(m_row1 + 1, 12) = sht.Cells(i + 5, 12)
Sheets("工资汇总").Cells(m_row1 + 1, 13) = sht.Cells(i + 5, 13)
Sheets("工资汇总").Cells(m_row1 + 1, 14) = sht.Cells(i + 5, 14)
Sheets("工资汇总").Cells(m_row1 + 1, 15) = sht.Cells(i + 5, 15)
Sheets("工资汇总").Cells(m_row1 + 1, 16) = sht.Cells(i + 5, 16)
Sheets("工资汇总").Cells(m_row1 + 1, 17) = sht.Cells(i + 5, 17)
Sheets("工资汇总").Cells(m_row1 + 1, 18) = sht.Cells(i + 5, 18)
End If
sht.Select
Next i
End If
Next sht
Sheets("工资汇总").Select
Application.ScreenUpdating = True
End Sub
为什么以上运行时都提示错误13,请各位帮忙看一下是什么问题?谢谢了
很有可能是
sht.Cells(5 + i, 18)
不为数字出错。
|
|