Anzeige
Archiv - Navigation
1296to1300
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formeln in Zellbereich eintragen per VBA-Array

Formeln in Zellbereich eintragen per VBA-Array
31.01.2013 16:48:57
Herbert
Hallo,
eine Formel kann ich mit VBA in eine Zelle mit folgendem Code eintragen:
ActiveCell.FormulaR1C1 = "=IF(RC[-64]="""","""",maxBlock2(ADDRESS(ROW()-1,COLUMN()-63)&"":""&ADDRESS(ROW()-1,54)&"",""&ADDRESS(ROW(),7)&"":""&ADDRESS(ROW(),COLUMN()-64),1)/2)"
Da ich aber über 1500 dieser Formeln gleichzeitig einsetzen muss, möchte ich diese Formeln nun per VBA in ein Array einlesen und dann in einem Rutsch in das Tabellenblatt schreiben. Dies habe ich mit dem folgenden Code vergeblich versucht:
Sub FormelnEintragen()
Dim ArrRestBlock1, c, r
Application.EnableEvents = False
ArrRestBlock1 = Range("BT19:DL20").Value
For r = 0 To 1
For c = 1 To 45
ArrRestBlock1(r, c) = _
"=IF(ADDRESS(ROW()19+r),COLUMN()-" & 63 & ")="""","""",maxBlock2(ADDRESS(ROW()-1, _
COLUMN()-" & 62 + c & ")&"":""&ADDRESS(ROW()-1,54)&"",""&ADDRESS(ROW(),7)&"":""&ADDRESS(ROW(),COLUMN()-" & 63 + c & "),1)/2)"
Next c
Next r
Range("BT19:DL20").Value = ArrRestBlock1
Application.EnableEvents = True
End Sub
Kann mir bitte jemand sagen, wo da der Fehler sitzt?
Dafür vielen Dank im Voraus!
Servus

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
VBA : Funktion in Zellbereich eintragen
31.01.2013 17:06:04
NoNet
Moin Herbert,
Verstehe ich das richtig : Du möchtest in den Bereich BT19:DL20 jeweils die gleiche funktion eintragen ?
Das ginge direkt so :
Range("BT19:DL20").FormulaR1C1 = "=IF(RC[-64]="""","""",maxBlock2(ADDRESS(ROW()-1,COLUMN()-63)&"":"" & ADDRESS(ROW()-1,54)&"",""&ADDRESS(ROW(),7)&"":""&ADDRESS(ROW(),COLUMN()-64),1)/2)"
Der Funktionsstring in Deinem Makro entspricht jedoch nicht ganz der dargestellten Funktion.
Die Arithmetik habe ich nicht so ganz verstanden, kannst Du sie mir bitte kurz erklären ?
Gruß, NoNet

AW: VBA : Funktion in Zellbereich eintragen
31.01.2013 18:26:43
Herbert
Hallo NoNet,
danke für Deine Mühe, doch nun bin ich selbst drauf gekommen. Die Sequenz muss lauten:
ArrRestBlock1(r, c) = "=IF(ADDRESS(ROW(),COLUMN()-64)="""","""",maxBlock2(ADDRESS(ROW()-1,COLUMN()-63)&"":""&ADDRESS(ROW()-1,54)&"",""&ADDRESS(ROW(),7)&"":""&ADDRESS(ROW(),COLUMN()-64),1)/2)"
Diese Formel wird dann mittels Array in 45 Spalten mal 32 Zeilen geschrieben. Das Ganze ist übrigens mal wieder für AzSee.
Servus
Anzeige

326 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige