كيف يمكنني أتمتة إنشاء مراجع المسماة في Excel؟ أريد الحقل الأول من كل صف ليكون مرجعا لي
-
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 الرأس.
وآمل أن يساعد هذا!
ومايك