excel
  • vba
  • variables
  • named-ranges
  • contiguous
  • 2016-06-09 15 views 1 likes 
    1

    Wie kann ich den folgenden nicht zusammenhängenden benannten Bereich mit den folgenden Variablen erstellen?Names.Add in VBA mit Variablen

    ActiveWorkbook.Names.Add Name:="Validation_Range", RefersToR1C1:= _ 
        "='Holding Template'!R3C1,'Holding Template'!R4C2" 
    

    Hier sind die Variablen:

    Dim PM As Range 
    Dim statement_date As Range 
    
    Set PM = ws.Range("A3") 
    Set statement_date = ws.Range("B4") 
    

    Wenn ich 1 Variable verwenden es funktioniert, aber ich bin nicht in der Lage mehr als eine Variable zu verwenden, um den nicht-zusammenhängenden Bereich zu schaffen.

    Antwort

    0

    Es ist nicht klar, wie man die beiden Bereiche werden immer Ihre Variablen zu setzen, aber hier sind einige der Union method mit Stenografie Optionen.

    Dim pm As Range, statement_date As Range 
    With Worksheets("Holding Template") 
        Union(.Cells(3, 1), .Cells(4, 2)).Name = "Validation_Range" 
        'alternate 
        'Union(.Range("A3"), .Range("B4")).Name = "Validation_Range" 
        'alternate 
        'Set pm = .Range("A3") 
        'Set statement_date = .Range("B4") 
        'Union(pm, statement_date).Name = "Validation_Range" 
    End With 
    

    Jedes dieser Verfahren erzeugt einen benannten Bereich der Arbeitsmappe Umfang oder überschreibt die RefersTo: eines bestehenden Validation_Range benannten Bereich mit Arbeitsmappe Umfang.

    +0

    Ich denke, das ist genau das, was ich suche. Die Union-Funktion scheint es zu erleichtern, die Variablen an einem Ort zu kombinieren. Vielen Dank! –

    +0

    Dieser Teil des Codes ist genau das, was ich brauchte. Danke noch einmal! 'Union (pm, statement_date) .Name = "Validation_Range" –

    0

    Erstellen Sie einen Namen wie Sie möchten manuell und dann sehen, wie es zusammengefügt wird. Schreiben Sie dann Code, um eine solche Zeichenfolge zu erstellen.

    Etwas Ähnliches scheint zu funktionieren:

    Sub test() 
        Dim PM As Range, ws As Worksheet 
        Dim statement_date As Range 
    
        Set ws = Sheets("Holding Template") 
        Set PM = ws.Range("A3") 
        Set statement_date = ws.Range("B4") 
    
        ActiveWorkbook.Names.Add Name:="Validation_Range", RefersTo:= _ 
         "='" & ws.Name & "'!" & PM.Address & ",'" & ws.Name & "'!" & statement_date.Address 
    End Sub 
    
    0

    Hier ist, wie ich alle Positionen in meiner Tabelle umbenannt:

    Sub renameheader() 
    i = 5 
    For x = 1 To 30 
    Worksheets("CHECKALL_LIST").Cells(1, i).Name = "Checks_" & x 
    i = i + 3 
    Next 
    End Sub 
    

    Die Überschriften alle 3 Zellen verschmolzen wurden, weshalb ich das „i“ zu verwenden, benötigt. Hoffe das hilft.

     Verwandte Themen

    • Keine verwandten Themen^_^