Hallo zusammen,
habe mal wieder ein Problem mit einem VBA Code.
Ich möchte das ein Code ein neues Sheet anlegt (Sheet4) und dort verschiedene Formeln einsetzt (ingesamt 12), die auf Sheet3 und Sheet2
referenzieren. Diese Formeln gehen immer von Zeile 2 bis Zeile 6601. Die Logik mit neuem Sheet anlegen und in diesem eine Formel zu pasten hat bisher
mit einer Formel immer wunderbar geklappt. Nun habe ich das auf 12 Formeln anwenden wollen, bekomme nun aber beim Ausführen die Error Message:
"Excel vba Object variable or With block variable not set error".
Hat da jemand einen schnellen Bugfix?
Anbei noch mein Code. Der erste Teil des Codes ist zum Öffnen der zu bearbeitenden Excel Dateien da. Nach dem Do While Befehl folgt die eigentliche Prozedur
Sub OrderBookDepth()
'Open Files
Dim Source As String
Dim StrFile As String
Const csPath As String = "C:\Users\Maximilian\Documents\Studium\Bachelor Arbeit\Data\Order_Book_Depth\"
Dim i As Integer
Dim objRange As Range
Dim Spalte As Integer
Dim Ausgang As String
Dim objRange1 As Range
Dim objRange2 As Range
Dim objRange3 As Range
Dim objRange4 As Range
Dim objRange5 As Range
Dim objRange6 As Range
Dim objRange7 As Range
Dim objRange8 As Range
Dim objRange9 As Range
Dim objRange10 As Range
Dim objRange11 As Range
Dim objRange12 As Range
Dim Formel1 As String
Dim Formel2 As String
Dim Formel3 As String
Dim Formel4 As String
Dim Formel5 As String
Dim Formel6 As String
Dim Formel7 As String
Dim Formel8 As String
Dim Formel9 As String
Dim Formel10 As String
Dim Formel11 As String
Dim Formel12 As String
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'do not forget last backslash in source directory.
Source = "C:\Users\Maximilian\Documents\Studium\Bachelor Arbeit\Data\Source\"
StrFile = Dir(Source)
Do While Len(StrFile) > 0
Workbooks.Open Filename:=Source & StrFile
Sheets.Add After:=ActiveSheet
'1
Formel1 = "=IF(Sheet1!B2>Sheet3!A2*(1-0,001);Sheet2!B2*Sheet2!D2;"")"
'Range für A2 bs A6601 festlegenS
Set objRange = Workbooks(StrFile).Worksheets(4).Range("A2:A6601") 'Cells(11, 6).Resize(zeilen - 11, 1) 'Bereichlänge anpassen....
'Formel einfügen
objRange1.FormulaLocal = Formel1 ''''''''''!!!!!!!!!!111Hier bricht der Code ab!!!!!!!!!!!!'''''''''''''''''''''''''''''''''''
Set objRange1 = Nothing
'2
Formel2 = "=IF(Sheet1!D2<Sheet3!A2*(1+0,001);Sheet2!D2*Sheet2!E2;"")"
'Range für A2 bs A6601 festlegenS
Set objRange2 = Workbooks(StrFile).Worksheets(4).Range("B2:B6601") 'Cells(11, 6).Resize(zeilen - 11, 1) 'Bereichlänge anpassen....
'Formel einfügen
objRange2.FormulaLocal = Formel2
Set objRange2 = Nothing
Vielen Dank und Grüße
Max
|