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
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.
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
Tags rename microsoft-excel vba