2016-11-16 5 views
0

Ich habe ein einfaches Makro zu meinem Excel hinzugefügt, aber es scheint zu meinem Excel-Absturz viel. Weiß jemand warum?Excel Absturz nach dem Hinzufügen von Macro

Hier ist das Makro:

Sub PlanRelativityTesting() 
With Sheets("Sheet1") 
For i = 8 To 9 
.Range("D11").value = .Range("G" & i).value   
Call AnotherMacro 
Sheets("Sheet2").Select  
     .Range("H" & i).value = Sheets("Sheet2").Range("AE20").value 
     .Range("I" & i).value = Sheets("Sheet2").Range("AE21").value 
     .Range("J" & i).value = Sheets("Sheet2").Range("AE22").value 
     .Range("K" & i).value = Sheets("Sheet2").Range("AE23").value 
     .Range("L" & i).value = Sheets("Sheet2").Range("AE24").value 
     .Range("M" & i).value = Sheets("Sheet2").Range("AE25").value 
     .Range("N" & i).value = Sheets("Sheet2").Range("AE26").value 
     .Range("O" & i).value = Sheets("Sheet2").Range("AE27").value 
     .Range("P" & i).value = Sheets("Sheet2").Range("AE28").value 
     .Range("Q" & i).value = Sheets("Sheet2").Range("AE29").value 
     .Range("R" & i).value = Sheets("Sheet2").Range("AE30").value 
     .Range("S" & i).value = Sheets("Sheet2").Range("AE31").value 
Next i  
.Select 
End With 
End Sub 
+2

obwohl wahrscheinlicher ist, warum nicht tun werden Sie weisen einfach die Transponierte des einen Bereichs dem anderen zu? Da sich Ihr Code auf einen mysteriösen 'AnotherMacro' bezieht, wie kann jemand sagen, was das Problem ist? Der Code, den Sie zeigen, ist unproblematisch (obwohl unnötig ausführlich). –

+0

Haben Sie die aufgerufene Funktion ebenfalls überprüft? Abhängig von der Größe Ihres Blattes und der Version von Excel (x64 oder x86) könnten Sie gegen das Limit von 2 GB RAM laufen. Sie können auch eine relative Adresse für die Zellen in Betracht ziehen, so dass Sie nicht so viel Code eingeben müssen, dh Range (Cells (1, 1), Cells (5, 3)) ist A1: C5 und erlaubt das Schleifen über beide Zeile und Spalte. Die Transponierung ist eine einfachere Lösung, wenn Sie das versuchen. – Zediiiii

+0

Hallo Zediiiii, Vielen Dank für den Kommentar! Es läuft auf 32-Bit-Excel und es ist 39 KB. Also ist die Größe wahrscheinlich nicht das Problem? Kannst du an einen anderen Grund denken? – JBB

Antwort

1

Wie John stellt fest, den Code kurz sein könnte:

Sub PlanRelativityTesting() 
    With Sheets("Sheet1") 
     For i = 8 To 9 
      .Range("D11").Value = .Range("G" & i).Value 
      AnotherMacro 
      .Range("H" & i).Resize(1, 12).Value = _ 
      Application.Transpose(Sheets("Sheet2").Range("AE20").Resize(12, 1).Value) 
     Next i 
     .Select 
    End With 
End Sub 

Die aktuelle Ausgabe in AnotherMacro

+0

Vielen Dank für Ihre Hilfe! AnotherMacro sollte in Ordnung sein; Es ist seit langem im Excel-Modell. Es scheint besser zu funktionieren, wenn ich das Makro im Originalmodell ausführe. Sobald ich jedoch eine weitere Kopie des Modells mit dem Makro speichere, stürzt es leicht ab. Die Datei ist 39.000 KB, vielleicht deshalb? – JBB

+0

Es ist unmöglich zu sagen, ob das der Grund ist, aber 39MB ist ziemlich groß. –

Verwandte Themen