Como faço para definir a caixa de nome usando uma macro do Excel VBA?

0

Estou construindo um modelo que pega os resultados da primeira planilha e os insere na próxima planilha. Criando efetivamente um aplicativo que é executado em série. Eu defini os valores na primeira folha pela caixa de nome para que eu possa chamar esses valores e usá-los em fórmulas com facilidade.

O próximo passo é criar a segunda planilha para que as células que eu preciso usar nas fórmulas possam ser nomeadas (na namebox) com os mesmos nomes da planilha 1, mas com a adição em algum sufixo (por exemplo, 1, ou A).

Desta forma, a planilha 1 terá células com nomes como SA, Vol, Q, etc., e a planilha 2 terá células com nomes como SA1, Vol1, Q1, etc.

Os nomes dos parâmetros existem nas células adjacentes. Por exemplo, quero nomear células na coluna C, usando seu valor / palavra adjacente na coluna B.

Aqui está o que eu tenho até agora:

Sub CreatName()
  Dim cel As Range
  Dim moretext As Variant

  moretext = InputBox("Enter text to add at end of name box: ")

  For Each cel In Worksheets("Model").Range("C:C").Cells
    If Not IsEmpty(cel.Value) Then
      cel.Name = cel.Offset(0, -1).Value & moretext
      MsgBox (cel.Name.Value)
    End If
  Next cel
End Sub

Eu não consigo fazer isso funcionar. O cel.name cospe o local da célula (por exemplo, ="Model"$C$25 ), e não consigo obter o sufixo para adicionar o nome.

    
por user264449 17.10.2013 / 22:11

1 resposta

0

Para obter o valor, use algo assim:

MsgBox (cel.Name.RefersToRange.Value)

Para adicionar um nome, faça o seguinte:

cName = cel.Offset(0, -1).Value & moretext

ActiveWorkbook.Names.Add Name:=cName, RefersToR1C1:=cell
    
por 17.10.2013 / 22:20