HintergrundShop ganzes Format einer Zelle in einer Variablen
Ich mag eine einfache Funktion schreiben, die den Inhalt von zwei ausgewählten (nicht notwendigerweise benachbarten Zellen) austauscht. I nicht möchte die Zelle zuerst in eine temporäre Zelle kopieren. Daher möchte ich die Zellen wirklich tauschen.
Herausforderung
Während einfach swaping der Inhalt ist ziemlich einfach, indem eine Variant
temporäre Variable unter Verwendung des Inhalts der Zelle 1 und überschreibt den Inhalt der Zelle 1 mit dem Inhalt der Zelle 2 und dann Schreiben Halten zurück Der Inhalt der Variant-Variable zu Zelle 2, ich habe Schwierigkeiten, auch alle Format-bezogenen Sachen zu kopieren. Es gibt viele Slots, die berücksichtigt werden müssen (.NumberFormat, .Interior
, um nur zwei zu nennen). Muss ich wirklich jede davon separat kopieren oder gibt es eine einfachere Möglichkeit, das Format ohne mit einer temporären Zelle auszutauschen?
-Code
Public Sub SwapCells(Optional bolWithFormat As Boolean = True)
'Purpose: switch the content of two cells
On Error GoTo ErrHandler
Dim rngSel As Range
Dim varContent As Variant
Set rngSel = Selection
If (rngSel.Count = 2) Then
With rngSel.Cells(1)
varContent = .Value
.Value = rngSel.Cells(2).Value
rngSel.Cells(2).Value = varContent
End With
Else
'Do nothing, because swap makes only sense for exactly 2 cells
End If
ErrHandler:
Set rngSel = Nothing
End Sub
Aus der Spitze von meinem Kopf, würden Sie ein Objekt mit allen gleichen Eigenschaften benötigen ... und das ist eine Zelle. Es wäre schön, in der Lage zu sein, ein Speicher residentes Blatt, einen Bereich oder eine Zelle zu spezifizieren. – OldUgly
Vielleicht ein * Stil *? – Raystafarian
Afaik gibt es kein 'CellFormat'-Objekt oder ähnliches. Was ist Ihre Sorge gegen die Verwendung einer temporären Zelle irgendwo in Ihrem Arbeitsbuch? – Verzweifler