Отлично на данный момент
Что имел в виду 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 и запустил подпрограмму, снова появилось сообщение об ошибке «Subscript out of range (Ошибка 9)».
Затем я изменил атрибуты рабочей книги только для чтения (глупая идея), но все жетолько мог получить «Ошибка 9».
А потом я наткнулся на сценарий, который дал мне вашу «ошибку 1004», а именно, я защитил лист, и когда я запускал код, вы знаете, что произошло.
Я надеюсь, что это причина вашего горя.Если нет, то по крайней мере некоторые возможные причины были устранены.