2009-03-09 10 views
0

Elektronik tablomun ilk sütunu benzersiz bir anahtardır (veri tabanı, excel ile ilgisi yoktur). Sütunlarımdan biri diğer satırlara bağlantılar (bu satırın benzersiz anahtarına) içerir. Bu hiperlinkleri eklediğimde, satır sırası zaman içinde değişeceğinden, "tanımlı adları" göstermem gerekiyor.Excel'de adlandırılmış başvuruların oluşturulmasını nasıl otomatikleştirebilirim? Her satırın ilk alanını referans olarak görmek istiyorum

Yeni bir satır eklediğimde tanımlanan adı oluşturmak zorunda kalmak istemiyorum. Bir sütunun metnini "tanımlı ad" olarak otomatik olarak tanımlamanın bir yolu var mı?

Umarım bu açıktır.

Çok teşekkürler.

+0

Örnek verilere sahip satır ve sütunların bir örneği yardımcı olacaktır. – shahkalpesh

cevap

0

Anladım. Mike R. beni doğru yola koydu. Teşekkürler.

Adlar için alfasayısal olmayan karakterleri kaldırmanız gerektiğini unutmayın. Ayrıca, bir adın çoğaltılması eski referansın üzerine yazılır.

Private Sub Worksheet_Change(ByVal Target As Range) 
    If (Target.Column = 1 And Target.Text <> "" And Target.Cells.Count = 1) Then 
     ThisWorkbook.Names.Add _ 
      Name:=StripChar(Target.Text), _ 
      RefersTo:=Target, _ 
      Visible:=True 
    End If 
End Sub 

Function StripChar(s As String) As String 
    With CreateObject("vbscript.regexp") 
     .Global = True 
     .ignorecase = True 
     .Pattern = "[^\dA-Z]" 
     StripChar = .Replace(s, "") 
    End With 
End Function 
2

Workbook.Names veya Worksheet.Names'a bakmanız gerekir (tanımlı adı çalışma sayfasına kısıtlamak isterseniz).

Yukarıdaki bağlantılarda gösterilen örnekler oldukça iyidir. Senin durumunda, Names.Add() yöntemi için 'Name' argümanı olarak iletilen dize olarak kullanılacak olan Range.Value veya Range.Text hücresinde kullanmak isteyebilirsiniz. Böyle bir şey olabilir VBA kullanarak

: değeri (metin) olmak kolon A için

ThisWorkbook.Names.Add _ 
    Name:=Sheet1.Range("A1").Text, _ 
    RefersTo:=Sheet1.Range("A:A"), _ 
    Visible:=True 

yukarıda setleri tanımlı ad başlık A1 hücresine bulundu.

Bu yardımcı olur umarız!

Mike

+0

Şimdiye kadar, çok iyi, şimdi o senaryoyu bir satır eklediğinde ya da sütun 1'in içeriğini değiştirdiğinde nasıl tetikleyecek? – Sparr

+0

Ah, anladım ... Bay Grieves, "Bir sütunun metnini 'tanımlı isim' olarak otomatik olarak tanımlamanın bir yolu var mı?" Diye sordu. ve ben de cevapladım. Worksheet_Change() olayını ele almanın sorunun bir parçası olduğunu bilmiyordum. Ama bir sonraki mesajda olduğu anlaşılıyor ... - Mike –

İlgili konular