2017-11-24 4 views
0

Apologies vlookup wenn dies eine andere Art und Weise gefragt wurde, aber ich konnte dieses Problem nicht überall finden ...Kann nicht Bereich nach Namensänderung in VBA

ich ein Modell bin Erstellung von Testdaten zu analysieren und die variieren müssen Größe meiner benannten Bereiche regelmäßig, um die unterschiedliche Anzahl der Lernenden auf jedem Kurs zu berücksichtigen. Ich habe den folgenden Code verwendet, dies zu tun:

For i = 2 To 20 

With ActiveWorkbook.Names("Question" & i) 
     .RefersTo = "Pivot Data 1 - To Use!$A$" & QuestionStart & ":$F$" & (LearnerNumbers + QuestionStart) 
     .Visible = True 
End With 

QuestionStart = QuestionStart + LearnerNumbers + 1 

Next i 

Es erfolgreich die Größe meiner Bereiche ändert (! Yay), aber wenn ich vlookup (a4, Question2, 3, FALSCH) in meinem Arbeitsblatt, Excel gibt die #WERT! Error.

Bei Untersuchung mit dem Name Manager habe ich festgestellt, dass die "Value" -Eigenschaft auf die gleiche wie die "verweist auf" "Pivot-Daten 1 - zu verwenden! $ A $ 22: $ F $ 37" anstatt die Auflistung Inhalt des Bereichs wie erwartet.

Ich bin nicht sicher, was ich von meinem Code verzichtete aber jede Hilfe wird sehr geschätzt.

Danke, Steph

Antwort

0
  • Vor allem auch in der RefersTo Zeichenfolge die = Zeichen wie erforderlich ist, was es RefersTo. Wenn Sie den Namen Manager überprüfen, was Sie dort eingegeben haben, sollte es mit einem = Zeichen beginnen.
  • Zweitens gibt es einen Raum, in dem Blattnamen müssen Sie explizit die Blattnamen in einfachen Anführungszeichen ein.

So können Sie Ihren Code zu

.RefersTo = "='Pivot Data 1 - To Use'!$A$" & QuestionStart & ":$F$" & (LearnerNumbers + QuestionStart) 
+0

Leider hat das das Problem nicht gelöst - die Value-Eigenschaft ist immer noch der Bereich, wird aber jetzt in einfache Anführungszeichen gesetzt. Danke aber :) – UncouthScientist

+0

Weitere Änderungen an meiner Antwort gemacht –

+0

Das ist es, vielen Dank! – UncouthScientist

0

ändern Sie fehlen die = auf der Vorderseite unterschreiben, so Excel denkt, dass Sie einen Namen definiert haben, nicht als eine Formel auf einen Bereich beziehen, sondern als ein Stück Text