Excel Zellen in Array umwandeln

Hoschbaer

Ensign
Registriert
Feb. 2005
Beiträge
147
Hallo,

vielleicht könnt ihr mir helfen.

Ich habe eine große Excel Tabelle in der ich zahlreiche Zellen als Array Zellen haben will.
Mein Plan ist, dies ggf. per Makro zu machen. Die Formel steht drin und ich möchte per Makro den Befehl Strg + Shift + Enter ausführen lassen um nicht jede Zelle einzeln anpacken zu müssen.

Wie kann ich dies bewerkstelligen?

Vielen Dank!
 
Angenommen deine umzuwandelnden Formeln stehen in A1:A4, dann geht das so:

Code:
For i = 1 To 4
    With Range("A" & i)
        .FormulaArray = .Formula
    End With
Next i
 
Mr. Snoot schrieb:
Angenommen deine umzuwandelnden Formeln stehen in A1:A4, dann geht das so:

Code:
For i = 1 To 4
    With Range("A" & i)
        .FormulaArray = .Formula
    End With
Next i

..vielen Dank schon mal!
Wie schaut es denn aus, wenn er nur die Markierten Zellen umwandeln soll?

Vielen Dank!

edit: in jeder einzelnen Zelle steht ein unterschiedliche Formel. Ich denke, dass gibt es noch zu beachten!

Diese Zellen müssen bearbeitet werden:
"C4:AR4,C6:AR6,C8:AR8,C10:AR10,C12:AR12,C14:AR14,C16:AR16,C18:AR18,C20:AR20,C22:AR22,C24:AR24"
 
Zuletzt bearbeitet:
Welche Formel in der jew. Zelle steht ist egal, jede wird in eine Matrixformel umgewandelt.

Code:
Sub matrixformel()

Dim i As Integer
Dim k As Integer
Dim sSpalte As String

For i = 4 To 24 Step 2 [COLOR="DarkGreen"]'jede 2. Zeile von 4 bis 24[/COLOR]
    For k = 3 To 44 Step 1 [COLOR="darkgreen"]'jede Spalte von Spalte 3 (=C) bis 44 (=AR)[/COLOR]
        sSpalte = Replace(Cells(1, k).Address(0, 0), "1", "") [COLOR="darkgreen"]'wandelt Spaltennummer (k) in Buchstabe um[/COLOR]
        With Range(sSpalte & i)
            .FormulaArray = .Formula
        End With
    Next k
Next i

End Sub
 
..da bringt er mir einen Fehler!

"Fehler beim Kompilieren: Sub oder Function nicht definiert"

Markiert hat er "replace".

Kannst du dir das bitte noch einmal anschauen.
Viele Dank!
 
Hm, evtl. gibt die Funktion in älteren Excel-Versionen nicht. 2007 und 2010 sollte eigentlich gehen.

Ich kann das aber auch irgendwie umschreiben.


edit: so, ist auch kürzer :)
Code:
Sub matrixformel()

Dim i As Integer
Dim k As Integer

For i = 4 To 24 Step 2
    For k = 3 To 44 Step 1
        With Cells(i, k)
            .FormulaArray = .Formula
        End With
    Next k
Next i

End Sub
 
Zuletzt bearbeitet:
Vielen Dank!

Es hat super geklappt!!!!
 
Zurück
Oben