Excel 运行时错误';1004';添加列时范围类的插入方法失败

Excel 运行时错误';1004';添加列时范围类的插入方法失败,excel,vba,Excel,Vba,这似乎很容易,但无法找到解决办法 Excel 2010。 目标:从B开始添加22个空列 错误: 运行时错误“1004”: 范围类的插入方法失败 代码: 正在检查类似的问题,但没有找到正确答案。您没有引用要插入列的工作表 Columns(colx).Insert Shift:=xlToRight 应该是 ws.Columns(colx).Insert Shift:=xlToRight 其中ws是工作表引用您尚未引用要插入列的工作表 Columns(colx).Insert Shift:=xlT

这似乎很容易,但无法找到解决办法

Excel 2010。 目标:从B开始添加22个空列

错误: 运行时错误“1004”: 范围类的插入方法失败

代码:


正在检查类似的问题,但没有找到正确答案。

您没有引用要插入列的工作表

Columns(colx).Insert Shift:=xlToRight
应该是

ws.Columns(colx).Insert Shift:=xlToRight

其中ws是工作表引用

您尚未引用要插入列的工作表

Columns(colx).Insert Shift:=xlToRight
应该是

ws.Columns(colx).Insert Shift:=xlToRight

其中ws是工作表引用

① 是否要在一个块中插入22列?如果是这样的话,那么像
.Cells(1,2).Resize(1,22).entireclumn.Insert这样的东西会更好。如果插入的列不打算是连续的,则向后循环;不是前锋。② 使用块可以标识所引用单元格的父工作表,也可以标识所引用工作表的父工作簿。③ 工作表上有多少数据?是否可能是您试图将数据从工作表的右侧推出?是否已启用要打开的文件进行编辑?还是只读?另外,我不确定Workbooks.Open的filename参数是否接受通配符(请参阅)。@Jeeped-funy的意思是它可以工作,但不能同时工作。你的代码行非常好,因为我向前迈出了一步,在屏幕上看到了你的解决方案,但在屏幕上仍然是相同的问题。我想这都是关于文件和工作表之间的引用等。@D-T-感谢您的回复,实际上通配符很好,只需打开文件后,我需要按“允许编辑”,并且它包含指向其他文档的链接。我想是这样的。当我解除对床单的保护时,这就为我解决了。① 是否要在一个块中插入22列?如果是这样的话,那么像
.Cells(1,2).Resize(1,22).entireclumn.Insert这样的东西会更好。如果插入的列不打算是连续的,则向后循环;不是前锋。② 使用块可以标识所引用单元格的父工作表,也可以标识所引用工作表的父工作簿。③ 工作表上有多少数据?是否可能是您试图将数据从工作表的右侧推出?是否已启用要打开的文件进行编辑?还是只读?另外,我不确定Workbooks.Open的filename参数是否接受通配符(请参阅)。@Jeeped-funy的意思是它可以工作,但不能同时工作。你的代码行非常好,因为我向前迈出了一步,在屏幕上看到了你的解决方案,但在屏幕上仍然是相同的问题。我想这都是关于文件和工作表之间的引用等。@D-T-感谢您的回复,实际上通配符很好,只需打开文件后,我需要按“允许编辑”,并且它包含指向其他文档的链接。我想是这样的。当我解除对床单的保护时,这就为我解决了。