2017-09-06 1 views
1

Ich habe einen visuellen Basiscode zusammengestellt, der Daten aus Zellen in mehreren Arbeitsmappen extrahiert und eine Arbeitsmappe für die Hauptübersicht erstellt. Ich möchte eine große Anzahl von Zellen aus jeder Arbeitsmappe hinzufügen, aber die Sub-Funktion funktioniert nicht mehr, wenn ich zu viele Zellen in den Quellbereich einschließe. Der erste Codeabschnitt funktioniert einwandfrei. Wenn ich weitere Zellen (zweiter Abschnitt des Codes) hinzufüge, wird das Sub weiterhin ausgeführt aber eine leere Arbeitsmappe generiert. Der Rest des Codes ist in beiden Fällen identisch. Gibt es eine maximale Anzahl von Zellen/Zeichen, die ich in einen Befehl aufnehmen kann? Trotzdem würde ich denken, dass dies eine solche Grenze nicht überschreiten würde.Gibt es eine Begrenzung für die Anzahl der Zellen, die in einem Quellenbereich aufgerufen werden?

Dieser Code funktioniert FINE

With mybook.Worksheets(1) 
       Set sourceRange = .Range("J2, C2, D7, F7, K7, G10, J10, G11, J11, G12, J12," _ 
       & "G14, J14, G15, J15, G16, J16, G17, J17, J21," _ 
       & "J2, D24:E24, G24, I24, J24, O24:S24," _ 
       & "D25:E25, G25, I25, J25, O25:S25," _ 
       & "D30:E30, G30, I30, J30, O30:S30") 

      End With 

DIESER CODE RETURNS ein leeres Arbeitsblatt

With mybook.Worksheets(1) 
       Set sourceRange = .Range("J2, C2, D7, F7, K7, G10, J10, G11, J11, G12, J12," _ 
       & "G14, J14, G15, J15, G16, J16, G17, J17, J21," _ 
       & "J2, D24:E24, G24, I24, J24, O24:S24," _ 
       & "D25:E25, G25, I25, J25, O25:S25," _ 
       & "D26:E26, G26, I26, J26, O26:S26," _ 
       & "D27:E27, G27, I27, J27, O27:S27," _ 
       & "D28:E28, G28, I28, J28, O28:S28," _ 
       & "D29:E29, G29, I29, J29, O29:S29," _ 
       & "D30:E30, G30, I30, J30, O30:S30") 

      End With 

Ich habe versucht, verschiedene Zellen verwendet und das gleiche Problem haben; es scheint die Anzahl der Zellen zu sein, die ich auswähle, nicht das, was in den Zellen des ursprünglichen Arbeitsbuchs steht, das ist das Problem.

+1

Es ist nicht die Anzahl der Zellen, die Sie wählen, ist das Problem, es ist die ** 255 Zeichen Grenze ** auf einem Bereich Name. – YowE3K

+0

Ich bekomme einen 1004 Fehler mit Ihrem zweiten Beispiel ... –

+0

Sie haben einen möglichen Tippfehler ... J2 wird in beiden Beispielen zweimal angezeigt – jsotola

Antwort

3

Das "A1, B1, C1" Syntax ist nur Kurzform für Range.Union - verwenden Sie explizite Range.Union Anrufe und der Himmel ist das Limit!

1

nicht als Antwort ... nur ein Tipp

Ihr Sortiment

With mybook.Worksheets(1) 
    Set SourceRange = .Range("C2, J2," _ 
          & "D7, F7, K7," _ 
          & "G10:G12, J10:J12," _ 
          & "G14:G17, J14:J17," _ 
          & "J21," _ 
          & "D24:E30, G24:G30, I24:J30, O24:S30") 
End With 
SourceRange.Select 
Stop     ' look at your worksheet here to see if the range is correct ... comment out two lines after verification 

wenn Sie mybook.worksheets(1) an jedem Ort anders beziehen werden, dann eine Objektvariable definieren und Namen vereinfachen soll verwenden , wie so

Dim ws1 As Worksheet 
Set ws1 = mybook.Worksheets(1) 

Set SourceRange = ws1.Range("C2, J2," _ 
          & "D7, F7, K7," _ 
          & "G10:G12, J10:J12," _ 
          & "G14:G17, J14:J17," _ 
          & "J21," _ 
          & "D24:E30, G24:G30, I24:J30, O24:S30") 
SourceRange.Select 
Stop     ' look at your worksheet here to see if the range is correct ... comment out two lines after verification 
Verwandte Themen