我正在尝试在某些列之后插入宏。从我所读的书中,我可以正确地完成所有操作,但是得到
错误1004,
而且我还没有找到像我这样具有完全正确设置的人。
根据我所看到的,大多数人都在插入列范围:.Range("H:Q")
我需要插入单独的列:.Range(H:H,K:K,N:N,Q:Q)
我在做什么错了?
Option Explicit
Sub Insert_Multiple_Columns()
Dim FIFA As Workbook
Set FIFA = ActiveWorkbook
'Ingredient_Forecast_Summary is the sheet name.
Worksheets("Ingredient_Forecast_Summary").Range("H:H,K:K,N:N,Q:Q").EntireColumn.Insert
End Sub
答案 0 :(得分:0)
吉普(Jeeped)的意思是您应该对代码执行以下操作:
Option Explicit
Sub Insert_Multiple_Columns()
Dim wbFIFA As Workbook
Dim wsIFS As Worksheet
Set wbFIFA = ActiveWorkbook
Set wsIFS = wbFIFA.Worksheets("Ingredient_Forecast_Summary")
'Remarks
' Now you can use wsIFS instead of:
' ActiveWorkbook.Worksheets ("Ingredient_Forecast_Summary")
' wbFIFA.Worksheets ("Ingredient_Forecast_Summary")
wsIFS.Range("H:H,K:K,N:N,Q:Q").EntireColumn.Insert
'Remarks
' The previous line has actually inserted the columns from the right to the
' left i.e.
' H:H gives you the H column
' K:K gives you the L column
' N:N gives you the P column
' Q:Q gives you the T column
End Sub
我在计算机上创建了您的方案,并且两个代码都可以正常工作。
当我故意拼写错误的工作表名称时,错误消息为“下标超出范围(错误9)”。
当我打开另一个工作簿,然后成为ActiveWorkbook并启动子目录时,错误消息再次为“下标超出范围(错误9)”。
然后我将工作簿的属性更改为只读(愚蠢的主意),但仍然只能得到“错误9”。
然后我偶然发现了一个给您“错误1004”的情况,即我保护了工作表,当我运行代码时,您知道发生了什么。
我希望这是您悲伤的原因。如果不是这样,至少可以消除某些可能的原因。