AW: Array kopieren u. Werte in anderes Array einse
11.02.2007 21:19:59
fcs
Hallo Lorenz,
mit der Array-Konstruktion funktioniert es meiner Meinung (meines Wissens) nicht.
Formeln und Werte lassen sich nur über entsprechende Range-Objekte zuweisen.
Mir ist allerdings nicht ganz klar ob du
jeweils in Zeile 111 Werte per Formel berechnest, deren Ergebnisse dann in die Target-Zeile übertragen werden sollen
oder
die Formeln aus Zeile 111 in die Target-Zeile kopieren willst, dann neu berechnest und zum Schluss die Formeln in der Target-Zeile durch ihre Werte ersetzen möchtest.
Nachfolgende Code-Beispiele für beide Varianten
Gruss
Franz
Beispiel Zeile 111 neu berechnen, dann Werte nach targetzeile übertragen
Dim SpaltenArr As Variant, i As Integer, Zeile As Long
Zeile = 111 'Zeile mit Formeln
SpaltenArr = Array(57, 104, 153, 168, 200, 231) 'Spaltennummern der jeweiligen Bereiche
'Zeile 111 neuberechne
ActiveSheet.Rows(Zeile).Calculate
'Werte von Zeile 111 in Target-Zeile übertragen
For i = LBound(SpaltenArr) To UBound(SpaltenArr) Step 2
Range(Cells(Target.Row, SpaltenArr(i)), Cells(Target.Row, SpaltenArr(i + 1))).Value = _
Range(Cells(Zeile, SpaltenArr(i)), Cells(Zeile, SpaltenArr(i + 1))).Value
Next
Beispiel Formeln Kopieren, dann durch Werte ersetzen
Dim SpaltenArr As Variant, i As Integer, Zeile As Long
Zeile = 111 'Zeile mit Formeln
SpaltenArr = Array(57, 104, 153, 168, 200, 231) 'Spaltennummern der jeweiligen Bereiche
Application.EnableEvents = False
'Formeln Kopieren
For i = LBound(SpaltenArr) To UBound(SpaltenArr) Step 2
Range(Cells(Zeile, SpaltenArr(i)), Cells(Zeile, SpaltenArr(i + 1))).Copy
Range(Cells(Target.Row, SpaltenArr(i)), Cells(Target.Row, SpaltenArr(i + 1))).PasteSpecial Paste:=xlPasteFormulas
Next
Application.CutCopyMode = False
Application.EnableEvents = True
'Neuberechnen und Werte statt Formeln
For i = LBound(SpaltenArr) To UBound(SpaltenArr) Step 2
With Range(Cells(Target.Row, SpaltenArr(i)), Cells(Target.Row, SpaltenArr(i + 1)))
.Calculate
.Value = .Value
End With
Next