"Помилка виконання 5" під час використання, Mid(), Left() або Right()


Microsoft Word 97 версію цієї статті див. 181102 .

Microsoft Word 98 версію цієї статті див. 181103 .

Microsoft Word 2000 версію цієї статті див. 201979 .

Причини


У Microsoft Visual Basic для застосунків (VBA), під час використання Mid(), Right()або Left() функції, може з'явитися таке повідомлення про помилку:

Помилка виконання '5': "неправильний виклик процедури або аргумент"

Причина


Ця проблема виникає, коли довжина аргумент для оператор негативно.

Функція Mid() повертає, частину текстовий рядок, починаючи з положення вказаного символу. Синтаксис команди становить

Mid(<string>, <start> [, <length>])
де < рядок > текстовий рядок пошуку, < Пуск > положення символів, з якого потрібно запустити, і < довжина > кількості символів, щоб повернути. Якщо не аргумент для < довжина > або є менше, ніж < довжина > символи в тексті, функція повертає всі символи від < Пуск > у кінці рядка.

Вирішення


Корпорація Майкрософт надає приклади програмного коду тільки для ілюстрації без гарантії або, – прямих або непрямих. Це включає, але не обмежується, будь-яких гарантій придатності до продажу та придатності для певної мети. У цій статті припускається, що ви знайомі з, що демонструє мову програмування та інструменти, які використовуються для створення та налагодження процедури. Співробітники служби підтримки корпорації Майкрософт можуть пояснити функціональні особливості кожної конкретної процедури, але вони не будуть змінювати приклади для реалізації додаткових можливостей або створювати процедури на вимогу окремих користувачів. Клацніть номер статті в базі знань Microsoft Knowledge Base:

290140 як запускати прикладів коду для програм Office XP статей бази знань

Щоб вирішити цю проблему, переконайтеся, що для перевірки довжину рядка, як показано нижче:

Sub ErrorDoesNotOccur()
Dim Test As String
Dim ReturnText As String

' Empty string, could be passed as an empty dialog
' variable, for example.
Test = ""

' Test the length of the string to ensure
' that subtracting 1 from the length leaves
' at least 1 character.
If Len(Test) - 1 > 0 then
ReturnText = Mid(Test, Len(Test) - 1)
End If

End Sub