تقوم بإرجاع متغير (طويل) يحدد موضع التواجد الأول لسلسلة موجودة داخل سلسلة أخرى.
بناء الجملة
InStr ([start, ] string1, string2 [, compare ] )
يحتوي بناء جملة الدالة InStr على هذه الوسيطات:
الوسيطة |
الوصف |
---|---|
بدء |
اختيارية. تعبير رقمي يعين موضع البداية لكل بحث. إذا تم حذفه، يبدأ البحث في موضع الحرف الأول. إذا كانت البداية تحتوي على Null، يحدث خطأ. وسيطة البدء مطلوبة إذا تم تحديد المقارنة . |
string1 |
مطلوبة. يتم البحث في تعبير السلسلة. |
string2 |
مطلوبة. تم البحث عن تعبير السلسلة. |
مقارنه |
اختيارية. يحدد نوع مقارنة بين السلاسل. إذا كانت المقارنة فارغة، يحدث خطأ. إذا تم حذف المقارنة ، يحدد إعداد OptionCompare نوع المقارنة. حدد LCID صالحا (LocaleID) لاستخدام قواعد خاصة باللغة المحلية في المقارنة. |
تلميح: يحتوي Expression Builder على IntelliSense، بحيث يمكنك معرفة الوسيطات التي يتطلبها التعبير.
الإعدادات
إعدادات وسيطة المقارنة هي:
ثابت |
قيمة |
الوصف |
---|---|---|
vbUseCompareOption |
-1 |
إجراء مقارنة باستخدام إعداد عبارة Option Compare . |
vbBinaryCompare |
0 |
إجراء مقارنة ثنائية. |
vbTextCompare |
1 |
إجراء مقارنة نصية. |
إرجاع القيم
إذا |
إرجاع InStr |
---|---|
string1 هو طول صفري |
0 |
string1 هو Null |
فارغ |
السلسلة 2 عبارة عن طول صفري |
بدء |
string2 هو Null |
فارغ |
لم يتم العثور على string2 |
0 |
تم العثور على string2 داخل string1 |
الموضع الذي تم العثور على المطابقة فيه |
بدء > string2 |
0 |
ملاحظات
يتم استخدام الدالة InStrB مع بيانات البايت المضمنة في سلسلة. بدلا من إرجاع موضع الحرف للحدوث الأول لسلسلة واحدة داخل سلسلة أخرى، يقوم InStrB بإرجاع موضع البايت.
أمثلة
استخدام الدالة InStr في تعبير يمكنك استخدام InStr أينما يمكنك استخدام التعبيرات. على سبيل المثال، إذا كنت تريد العثور على موضع الفترة الأولى (.) في حقل يحتوي على عناوين IP (المسماة IPAddress)، يمكنك استخدام InStr للعثور عليه، مثل:
InStr(1,[IPAddress],".")
تفحص الدالة InStr كل قيمة في حقل IPAddress وترجع موضع الفترة الأولى. وبالتالي، إذا كان الجزء الأول من عنوان IP هو 10.، ترجع الدالة القيمة 3.
يمكنك بعد ذلك استخدام دالات أخرى، تعمل على إخراج الدالة InStr ، لاستخراج جزء عنوان IP الذي يسبق الفترة الأولى، مثل ذلك:
Left([IPAddress],(InStr(1,[IPAddress],".") -1))
في هذا المثال، InStr(1,[IPAddress],".") إرجاع موضع الفترة الأولى. يحدد طرح 1 عدد الأحرف التي تسبق الفترة الأولى، في هذه الحالة، 2. ثم تستخرج الدالة Left العديد من الأحرف من الجزء الأيسر من حقل IPAddress، مع إرجاع القيمة 10.
استخدام InStr في التعليمات البرمجية ل VBA
ملاحظة: توضح الأمثلة التالية استخدام هذه الدالة في وحدة Visual Basic for Applications (VBA).
يستخدم هذا المثال الدالة InStr لإرجاع موضع التكرار الأول لسلسلة واحدة داخل سلسلة أخرى.
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
MyPos = Instr(1, SearchString, "W") ' Returns 0.