我的一个excel文件里面有好135个sheet,现在想把第一个表格的第一列全部复制到后面几个sheet,编了一个?

VBA宏问一下为什么运行的时候会报错400?如下:Sub 宏2()Dim i As IntegerFor i = 1 To Sheets.Count Sheets(i).Select Columns("A:A").Select Selection.Copy Sheets(i + 1).Select Columns("A:A").Select ActiveSheet.Paste Next iEnd Sub
2026年09月23日 06:36
有4个网友回答
网友(1):

总共135个sheet,用第一个的A列覆盖2-135个sheet的A列,是需要这样的代码吗?
Sub 宏2()
Dim i As Integer
For i = 2 To Sheets.Count
Sheets(1).Range("A:A").Copy Sheets(i).Range("A:A")
Next i
End Sub

网友(2):

我觉得不用VBA也可以,选中全部工作表,复制A列,然后在A列前面插入一列,取消全部选择,把第一个表格里面多的那一列删除了就可以。

网友(3):

自己编了一个就好,想让我们也用?循环的末尾 要 -1 的。

网友(4):

Sub 宏2()
Dim Sh As Worksheet
For Each Sh In Sheets
If Sh.Name <> Sheets(1).Name Then
Sh.Columns("A:A").Value = Sheets(1).Columns("A:A").Value
End If
Next
End Sub

或者按你的方法:
Sub 宏3()
Dim i As Integer
Sheets(1).Columns("A:A").Copy
For i = 2 To Sheets.Count
Sheets(i).Select
Columns("A:A").Select
Sheets(i).Paste
Next i
End Sub