2016-11-03 4 views
0

Ich versuche, eine Reihe von Zellen mit einer Zeichenfolge-Variable zu benennen und dann eine Nummer hinzuzufügen. Für jetzt habe ich das, aber es nicht Schleife durch die Zellen und es nennt nur das letzte auf dem loopp, das D978. Ich würde Ihre Hilfe schätzen!So benennen Sie unabhängige Bereiche mit Excel VBA

Sub NameRange_Add() 
Dim cell As Range 
Dim RangeName As String 
Dim CellName As String 
Dim i As Integer 
Dim j As Integer 


'Single Cell Reference (Worksheet Scope) 

For j = 3 To 8 
For i = 2 To 6 
RangeName = "tag" & i 
CellName = "D97" & j 

    Set cell = Worksheets("TAG AD").Range(CellName) 
    Worksheets("TAG AD").Names.Add Name:=RangeName, RefersTo:=cell 

    Next i 
Next j 

End Sub 
+0

Es tut mir leid, aber diese Schleife sieht nicht gut aus. Zunächst einmal, warum benutzt du zwei 'For'-Loops? One Loop sollte gut funktionieren, da Sie nur die Variable "i" für Ihren Namen und "j" für Ihren Zellenbereich verwenden. Warum verwenden Sie nicht eine Variable für beide? Oder möchten Sie 6 verschiedene Namen haben, die auf eine Zelle verweisen? Auch Sie stoßen auf einen Fehler, weil Sie denselben Namen für verschiedene Zellen mit Ihrem Ansatz haben. –

+0

Auch der Name "Tag" & i "wird mit der Spalte" TAG "versauen, so" TAG3 "ist eine vorhandene Zelle und kann nicht als Name verwendet werden (Kleinbuchstaben ändert nichts). –

Antwort

0

sollten Dieser Code funktioniert, wie es für mich tut:

Sub NameRange_Add() 
Dim RangeName As String 
Dim Reference As String 
Dim i As Integer 

For i = 2 To 6 
    RangeName = "MyTag" & i 
    Reference = "='TAG AD'!$D$97" & i 
    Worksheets("TAG AD").Names.Add name:=RangeName, RefersTo:=Reference 
Next i 

End Sub 

Dies wird die folgenden zitierten Namen produzieren: Sample

Wenn Sie einen Kommentar mehr assistence bitte lassen müssen.

BEARBEITEN: Bitte beachten Sie, dass Sie einen gültigen Namen für den Bereich angeben müssen, da "tag" & i nicht gültig ist. Sie können dies manuell überprüfen, indem Sie versuchen, einen der Namen manuell hinzuzufügen.

+0

Danke für die Hilfe. Obwohl ich 2 $ sings zur Arbeit hinzufügen musste. Wenn ich deinen Code ausgeführt habe, hat er G1973 die Namen gegeben, ich weiß nicht warum. –

+0

Ja danke für diese Information. Ohne die '$' s würde es nur funktionieren, wenn Ihre ausgewählte Zelle ** A1 ** ist, wenn Sie das Makro ausführen. Ich füge diese Änderung der Antwort hinzu. –

Verwandte Themen