1

Поэтому я пытаюсь сказать VBA вставить определенное количество столбцов между двумя другими столбцами на основе ссылки на ячейку.

Мне удалось получить Excel, чтобы вставить столбцы в моем диапазоне:

Sub INSERT()

Диапазон (Range ("Data_FirstColumn").Диапазон смещения (, 1)("Data_Net").Смещение (, -2)).EntireColumn.ВСТАВИТЬ

End Sub

По сути, я хочу вставить x количество столбцов между "Data_FirstColumn" и "Data_Net" на основе ссылки на ячейку

Например, если в ячейке указано 10, я хочу, чтобы Excel вставил 10 столбцов между "Data_FirstColumn" и "Data_Net". Если в ячейке указано 1, я хочу, чтобы Excel вставил 1 столбец между "Data_FirstColumn" и "Data_Net".

Я пробовал следующее, но он продолжает вставлять столбцы слева от "Data_FirstColumn", а не между "Data_FirstColumn" и "Data_Net"

Sub INSERT()
Range(Range("Data_FirstColumn").Offset(, 1), Range("Data_Boundary").Offset(, -2)).Application.DisplayAlerts = False

Dim i As Integer

For i = 1 To Range("Assumptions!B26").Value
    Columns(1).INSERT
Next i

Application.DisplayAlerts = True

End Sub

Спасибо!

1 ответ1

1

Это просто что-то вроде этого:

Sub test()
Dim i As Integer

For i = 1 To Range("A1").Value

    Columns("D:D").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Next i
End Sub

так что для вас, используя именованный диапазон, просто shift:=xltoright и он сместит этот столбец вправо, вставив новый слева от него.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .