如何分别插入列

时间:2018-10-02 21:44:34

标签: excel vba excel-vba

我正在尝试在某些列之后插入宏。从我所读的书中,我可以正确地完成所有操作,但是得到

  

错误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

1 个答案:

答案 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”的情况,即我保护了工作表,当我运行代码时,您知道发生了什么。

我希望这是您悲伤的原因。如果不是这样,至少可以消除某些可能的原因。