Kopieren von Spalten und einfügen nur Formeln - nicht Werten
Ich versuche, kopieren Sie eine Spalte auf der rechten Seite der Tabelle, und fügen die Formeln (nicht die Werte).
Sub acrescentaCols()
Dim oSheet As Worksheet
Set oSheet = Sheets("Sheet1")
oSheet.Columns("D:D").Select
Selection.Copy
Range(Selection, Selection.End(xlToRight)).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
Aber dies ist das kopieren auch die Werte (weil Excel Auffassung-Werte eine Formel zu).
Wie kann ich dieses Problem beheben?
- Die
.Formula
Eigenschaft kann mit oder ohne=
. Dievalues
Sie sich beziehen, sind Formeln ohne=
. - Ja, das macht Sinn. aber wie ist der code? Ich kann nicht entfernen = wihout immer ein Fehler
- verwenden Sie eine if-Anweisung, um zu sehen, ob zuerst die linke Seite charactier der Formel ist '=' fügen Sie andere ignorieren. Sie benötigen zu Durchlaufen. Aber verwenden Sie nicht das copy paste weisen die Formel statt, es wird schneller.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als pro meine Kommentare früher:
do
Schleife springen von einem zum nächsten, insgesamt sind es weniger iteration, aber Sie laufen Gefahr, dass ein "=" innerhalb einer Zeichenfolge, die abgeholt werden, auch. Zumindest mit meinem knowledge base ist dies der beste Weg.Den unten beheben sollten Ihre unmittelbare problem, nur das kopieren der Formeln über-und nicht die Werte, aber ich bin mir nicht sicher, was genau Sie zu tun versuchen. Wenn man mehr Informationen, die ich bin sicher, ich kann helfen, Sie erreichen, was Sie versuchen zu erreichen.
Es scheint, als ob Sie möchten, kopieren Sie die Formeln nach jeder Zeile auf der rechten Seite der Spalte D auf der sehr rechten Rand des Arbeitsblattes?
Es auch scheint, wie Sie möchten, kopieren Sie die Formeln nur so, dass Sie neu zu bewerten, in Ihre neue Lage - oder wollen Sie die Werte der Vergangenheit nur so zu halten, dass Sie die gleichen Werte, die Sie ausgewertet, auf die in der Spalte D?
Sowieso, geben diesem einen Wirbel.
Wenn Sie sagen, fügen Sie die Formel nur - die Methode zum einfügen der Formel und dann neu berechnen und die Formel zeigen das Ergebnis. Ich denke, eine bessere Möglichkeit, dass zu schreiben wäre:
Wenn Sie wollen, um zu zeigen, die eigentliche Formel könnte man eine UDF etwas wie:
Wenn Sie sich bewerben möchten diese auf eine ganze Spalte, die Sie verwenden könnten:
Diese wird wahrscheinlich töten Sie Ihre Tabellenkalkulation, obwohl - es wird das ausführen der UDF auf alle Zeilen.
For Each Cell in rCopied | Cell.FormulaR1C1 = GetFormulaR1C1(RC4) | Next Cell
und ändern Sie es zuGetFormulaR1C1 = Target.FormulaR1C1
plus einrichten einerInStr(Target.FormulaR1C1,"=")>0
Kriterium.Hello, A = B
enthält ein Gleichheitszeichen, aber nicht die Formel.=1+1
willst du es anzeigen=1+1
oder2
?