我建议先简化代码。(可能有助于你追踪出问题的地方。)因为你不需要在处理之前选择一个范围。。。。
rowToCopy = Range(tableStartAdress).Offset(1, 0).Row & _
":" & Range(tableStartAdress).Offset(1, 0).Row
Rows(rowToCopy).Select
Selection.Copy
Range(tableStartAdress).Offset(1, 0).Select
ActiveCell.Resize(rowsToInsert, 1).Select
Selection.Insert Shift:=xlDown
和。。。
Range(tableStartAdress).Offset(1, 0).EntireRow.Copy
Range(tableStartAdress).Offset(1, 0).Resize(rowsToInsert, 1).Insert Shift:=xlDown
看起来容易多了。有几个想法:首先,您确定tableStartAddress实际上总是一个单元格(并且是正确的单元格)?你确定rowsToInsert总是38岁吗?除此之外,当前编写的代码将复制整行并将其插入理论上为38行乘1列的范围。我建议您重写它,这样您首先插入任意多行,然后用属于该行的数据填充38x 1范围。