Подтвердить что ты не робот

CopyOrigin для вставки в Excel VBA

Может ли кто-нибудь сказать мне, для чего используется параметр CopyOrigin для Insert? И какие значения он примет?

Я включил помощь vba (что было не очень полезно):

Вставляет ячейку или диапазон ячеек в рабочий лист или макролист и сдвигает другие ячейки, чтобы освободить место.

expression.Insert(Shift, CopyOrigin) Требуется выражение. Выражение который возвращает объект Range.

Сдвиг дополнительного варианта. Определяет каким образом сдвинуть ячейки. Возможно одно из следующих Константы XlInsertShiftDirection: xlShiftToRight или xlShiftDown. Если это аргумент опущен, Microsoft Excel решает на основе формы Диапазон.

Дополнительный вариант CopyOrigin. копировать происхождение.

4b9b3361

Ответ 1

Он принимает один из параметров, как указано ниже.

Const xlFormatFromLeftOrAbove = 0

Member of Excel.XlInsertFormatOrigin

и...

Const xlFormatFromRightOrBelow = 1

Member of Excel.XlInsertFormatOrigin

Ответ 2

Добавляя к комментариям Lakshmanaraj - он выбирает вариант форматирования в зависимости от того, где вы вставляете ячейки и какое форматирование вы хотите выбрать.

Допустим, у вас есть:
первая строка, которая имеет полужирный текст,
вторая строка имеет курсивом.
Вы выбираете вторую строку и выполняете следующее выражение:

Selection.Insert CopyOrigin:=xlFormatFromLeftOrAbove

Новая строка вставлена ​​между 1-й и 2-й строками и выбирает правила форматирования из "строки выше" или "ячейки слева от ячейки".

В этом случае вновь вставленные ячейки будут иметь текст полужирным, если вы не установите его явно.

Ответ 3

Вы можете здесь:

Imports Excel = Microsoft.Office.Interop.Excel
Dim XLApp As New Excel.Application()
Dim xWkBook As Excel.Workbook = XLApp.Workbooks.Open(YourInitialPath)
Dim xSheet As Excel.Worksheet = CType(xWkBook.Sheets(1), Excel.Worksheet)

CurCell = xSheet.Range("G9:G11")
CurCell.Insert(Excel.XlInsertShiftDirection.xlShiftToRight, CurCell.Copy())