كيف يمكنني أتمتة إنشاء مراجع المسماة في Excel؟ أريد الحقل الأول من كل صف ليكون مرجعا لي

StackOverflow https://stackoverflow.com/questions/627377

  •  06-07-2019
  •  | 
  •  

سؤال

والعمود الأول من جدول البيانات الخاص بي هو مفتاح فريد (بيانات الحكمة، لا علاقة لها التفوق). آخر من أعمدة بلدي يحتوي على ارتباطات إلى الصفوف الأخرى (لمفتاح فريد الصف و). عندما أقوم بإدخال هذه الارتباطات التشعبية، ولست بحاجة للإشارة إلى "أسماء محددة" منذ ترتيب الصفوف تتغير بمرور الزمن.

وأنا لا أريد أن يكون لإنشاء اسم معرف في كل مرة كنت إدراج صف جديد. هل هناك طريقة لتحديد النص تلقائيا في العمود باسم "اسم معرف"؟

وآمل أن يكون هذا واضحا.

وشكرا جزيلا.

هل كانت مفيدة؟

المحلول 2

وحصلت عليه. وضع مايك 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

نصائح أخرى

ويجب أن ننظر إلى في Workbook.Names أو <وأ href = "http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.names(VS.80) .aspx اتصال "يختلط =" نوفولو noreferrer "> Worksheet.Names (وإذا كنت ترغب في تقييد اسم معرف في ورقة العمل).

والأمثلة هو مبين في وصلات جيدة جدا أعلاه. في الحالة الخاصة بك، وكنت ترغب في استخدام Range.Value أو Range.Text الموجودة في الخلية لاستخدامها السلسلة التي تم تمريرها في كوسيطة 'اسم' للأسلوب Names.Add ().

<ع> استخدام VBA قد تبدو شيئا من هذا القبيل:

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

ما سبق يضع اسم معرف للعمود A لتكون قيمة (النص) وجدت في الخلية A1 الرأس.

وآمل أن يساعد هذا!

ومايك

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top