Objeto Names (Excel)

Uma coleção de todos os objetos Name no aplicativo ou pasta de trabalho.

Comentários

Cada objeto Name representa um nome definido para um intervalo de células. Os nomes podem ser nomes internos, como Banco de Dados, Print_Area e Auto_Open ou nomes personalizados.

O argumento RefersTo precisa ser especificado em notação de estilo A1, incluindo sinais de cifrão ($), onde for apropriado. Por exemplo, se a célula A10 estiver selecionada em Sheet1 e você definir um nome usando o argumento RefersTo "=sheet1!A1:B1", o novo nome na realidade fará referência às células A10:B10 (porque você terá especificado uma referência relativa). Para especificar uma referência absoluta, use "=sheet1!$A$1:$B$1".

Exemplo

Use a propriedade Nomes do objeto Workbook para retornar a coleção Nomes . O exemplo a seguir cria uma lista de todos os nomes na pasta de trabalho ativa, além dos endereços aos quais eles se referem.

Set nms = ActiveWorkbook.Names 
Set wks = Worksheets(1) 
For r = 1 To nms.Count 
    wks.Cells(r, 2).Value = nms(r).Name 
    wks.Cells(r, 3).Value = nms(r).RefersToRange.Address 
Next

Use o método Add para criar um nome e adicioná-lo à coleção. O exemplo a seguir cria um novo nome que se refere às células A1:C20 na planilha chamada Sheet1.

Names.Add Name:="test", RefersTo:="=sheet1!$a$1:$c$20"

Use Nomes (índice), em que index é o número do índice de nome ou nome definido, para retornar um único objeto Name . O exemplo a seguir exclui o nome mySortRange da pasta de trabalho ativa.

ActiveWorkbook.Names("mySortRange").Delete

Este exemplo usa um intervalo nomeado como a fórmula para validação de dados. Este exemplo exige que os dados de validação estejam na Planilha 2 no intervalo A2:A100. Esses dados de validação são usados para validar dados inseridos na Planilha1 no intervalo D2:D10.

Sub Add_Data_Validation_From_Other_Worksheet()
'The current Excel workbook and worksheet, a range to define the data to be validated, and the target range
'to place the data in.
Dim wbBook As Workbook
Dim wsTarget As Worksheet
Dim wsSource As Worksheet
Dim rnTarget As Range
Dim rnSource As Range

'Initialize the Excel objects and delete any artifacts from the last time the macro was run.
Set wbBook = ThisWorkbook
With wbBook
    Set wsSource = .Worksheets("Sheet2")
    Set wsTarget = .Worksheets("Sheet1")
    On Error Resume Next
    .Names("Source").Delete
    On Error GoTo 0
End With

'On the source worksheet, create a range in column A of up to 98 cells long, and name it "Source".
With wsSource
    .Range(.Range("A2"), .Range("A100").End(xlUp)).Name = "Source"
End With

'On the target worksheet, create a range 8 cells long in column D.
Set rnTarget = wsTarget.Range("D2:D10")

'Clear out any artifacts from previous macro runs, then set up the target range with the validation data.
With rnTarget
    .ClearContents
    With .Validation
        .Delete
        .Add Type:=xlValidateList, _
             AlertStyle:=xlValidAlertStop, _
             Formula1:="=Source"
        
'Set up the Error dialog with the appropriate title and message
        .ErrorTitle = "Value Error"
        .ErrorMessage = "You can only choose from the list."
    End With
End With

End Sub

Métodos

Propriedades

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.