Excel 2007 Formel und Wert ausschneiden und einfügen, ohne die Formatierung der Zellen zu ändern. Die Einfügeoptionen sind ausgegraut

491
Piecevcake

Ich muss nur den Zellinhalt ausschneiden, wobei das Quellzellenformat unverändert bleibt, und die entsprechende Zielzellformatierung einfügen. Ich denke, keine ungewöhnliche Frage?

Ich habe gesucht, aber Google Suchfilter-Blase hat mich - Nada.

Einfügen Spezial ist nicht für Schnitte verfügbar? Einfügeoptionen sind ausgegraut.

Ich habe versucht, ein Makro aufzuzeichnen, um es mit geöffneter Zwischenablage-Seitenleiste zu kopieren (der kopierte Wert wird dort angezeigt). Dann lösche ich die Quellzelle, während ich in ihr bin (das Format belassen) und dann in die Zielzelle einfügen, indem Sie auf das Zwischenablageelement klicken. Das funktioniert bei der Aufzeichnung, aber das aufgezeichnete Makro gibt einen Fehler zurück "PasteSpecial-Methode der Worksheet-Klasse ist fehlgeschlagen". Während sich das Element in der Seitenleiste befindet, wurde die tatsächliche Zwischenablage geleert.

Es scheint einige mögliche Problemumgehungen zu geben: 1: Stoppen Sie, dass die Zwischenablage von Excel geleert wird (Welches Genie kam auf die Idee, die Zwischenablage zu löschen? Ich glaube, wir haben einfach Glück, dass sie an Excel arbeiten, nicht an Fenstern oder im Büro ... ) 2: Füge den ausgeschnittenen Text irgendwie als "Wert" oder "Formel" oder "HTML" ein. 3. ein außerordentlich langer Code zum Einstellen des Bereichs, zum Kopieren, Einfügen, zum erneuten Auswählen des Bereichs, zum Löschen, zum Entfernen des Bereichsnamens, zum erneuten Wählen des Zielbereichs!

Wäre sehr dankbar für Hilfe bei diesem Rätsel.

0

2 Antworten auf die Frage

0
Albin

Hier ist eine Umgehung ohne VBA / Makros:

Anstatt eine "ganze" Zelle auszuwählen und auszuschneiden, wählen Sie den "Inhalt" der Zelle aus und schneiden Sie sie aus (zuerst die Zelle auswählen, dann beispielsweise F2 und dann Strg + A drücken). Nachdem Sie "Ausschneiden" verwendet haben, ist die Zelle leer, das Format wird jedoch nicht geändert.

Beim Einfügen behält die Zielzelle das ursprüngliche Format bei, erhält jedoch den Wert / die Formel aus der Quellzelle. Wenn Sie das Format von der Quelle zum Ziel übertragen möchten, verwenden Sie einfach Kopieren und Einfügen (nur Einfügen des Formats).

0
Piecevcake

Es getan! Mit Hilfe von So schließen Sie Überschneidungen von Bereichen aus einem Bereich aus? (Makro für Zelleninhalt verschieben)

Sub E____MoveSelectedCellsContentsOnlyKeepFormats_Ctrl_M()  Application.CutCopyMode = False 'clears any existing copy mode On Error GoTo EXITSUB 'exits if cancel clicked  Dim RANGE_TO_COPY As Range 'define inputbox variable Dim CELL_TO_PASTE_TO As Range 'define inputbox variable  '-----------name SOURCE range = selected before macro started Set RANGE_TO_COPY = Selection 'is this necessary, when not using inputbox? COPYSOURCE = RANGE_TO_COPY.Address(False, False) 'name the inputbox selection as a range  '=========== inputbox to select PASTE destination Set CELL_TO_PASTE_TO = Application.InputBox("select top left cell of range to PASTE TO, with the mouse", Default:=Selection.Address, Type:=8)  '------------- assigns name to the selected DESTINATION range PASTERANGE = CELL_TO_PASTE_TO.Address(False, False) 'name the inputbox selection as a range  '=========== action = COPY SOURCE Range(COPYSOURCE).Copy  '======================PASTE TO DESTINATION 'DEFAULT: PASTE FORMULAS AND NUMBER FORMATS (MATCHES DESTINATION FORMAT, keeps date/ etc original):  Range(PASTERANGE) _ .PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'formulas+number format  '======DELETE SOURCE CELL CONTENTS - remove if COPY required '------------ loop - from superuser - deletes source but NOT pasterange overlap Dim rgLoop As Range, rgToDelete As Range For Each rgLoop In Range(COPYSOURCE).Cells If Intersect(rgLoop, Range(PASTERANGE).Resize(Range(COPYSOURCE).Rows.Count, Range(COPYSOURCE).Columns.Count)) Is Nothing Then If rgToDelete Is Nothing Then Set rgToDelete = rgLoop Else Set rgToDelete = Union(rgToDelete, rgLoop) End If Next rgLoop  rgToDelete.ClearContents 'deletes contents keeps formatting  EXITSUB:  End Sub 

:-)

Noch zu tun - Option zum Einfügen von Zellenzeichenformaten (Fettdruck, Symbolschriftarten usw.) (ATM passt nur zu Zielzellenformaten). Piecevcake vor 5 Jahren 0