2009-03-26 22 views
19

Qualcuno può dirmi per cosa viene usato il parametro CopyOrigin di Insert? E quali valori accetterà?CopiaOrigin su Insert in Excel VBA

ho incluso l'aiuto di VBA (che non era poi così utile):

Inserisce una cella o un intervallo di celle nel foglio di lavoro o foglio di macro e turni di altre cellule via per fare spazio .

expression.Insert (Shift, CopyOrigin) espressione Richiesto. Un'espressione che restituisce un oggetto Range.

Variante Variante opzionale. Specifica quale modo per spostare le celle. Può essere una delle seguenti costanti XlInsertShiftDirection: xlShiftToRight o xlShiftDown. Se questo argomento viene omesso, Microsoft Excel decide in base alla forma dell'intervallo .

CopiaOrigin Variante opzionale. L'origine della copia .

risposta

22

Prende uno dei due parametri come indicato di seguito.

Const xlFormatFromLeftOrAbove = 0 

Member of Excel.XlInsertFormatOrigin 

e ...

Const xlFormatFromRightOrBelow = 1 

Member of Excel.XlInsertFormatOrigin 
19

aggiunta ai commenti di Lakshmanaraj - raccoglie l'opzione di formattazione a seconda di dove si sta inserendo cellule & quello di formattazione che si desidera scegliere.

Diciamo che avere:
prima fila che ha il testo in grassetto,
seconda fila ha cose in corsivo.
si seleziona la 2 ° fila & eseguire la seguente espressione:

Selection.Insert CopyOrigin:=xlFormatFromLeftOrAbove 

La nuova riga viene inserita tra il 1 ° e 2 ° fila & raccoglie regole di formattazione della "riga sopra" o "celle a sinistra della cella ".

In questo caso, le celle appena inserite avranno il testo in grassetto senza che lo si imposti esplicitamente.

0

è possibile fare riferimento qui:

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()) 
+1

Questa risposta è assolutamente fuorviante, non c'è motivo di mettere 'CurCell.Copy()' 'all'interno chiamata Insert' in quanto non ha nemmeno restituisce nulla, ma le copie CurCell contenuti negli appunti in seguito verrà inserito da 'CurCell.Insert()' –

+0

curcell è cosa? intervallo variabile? pianeta variabile? Nome di tua moglie? –

+4

questo non è VBA, non è possibile impostare una variabile mentre si utilizza 'DIM'. tutto è "errore di sintassi" contrassegnato con colori in VBE (tranne la riga con 'range'). –