Номер ошибки: | Ошибка во время выполнения 28 | |
Название ошибки: | Out of stack space | |
Описание ошибки: | The stack is a working area of memory that grows and shrinks dynamically with the demands of your executing program. | |
Разработчик: | Microsoft Corporation | |
Программное обеспечение: | Windows Operating System | |
Относится к: | Windows XP, Vista, 7, 8, 10, 11 |
Обзор «Out of stack space»
Люди часто предпочитают ссылаться на «Out of stack space» как на «ошибку времени выполнения», также известную как программная ошибка. Разработчики программного обеспечения пытаются обеспечить, чтобы программное обеспечение было свободным от этих сбоев, пока оно не будет публично выпущено. Хотя эти превентивные действия принимаются, иногда ошибки, такие как ошибка 28, будут пропущены.
Ошибка 28 может столкнуться с пользователями Windows Operating System, если они регулярно используют программу, также рассматривается как «The stack is a working area of memory that grows and shrinks dynamically with the demands of your executing program.». Когда это происходит, конечные пользователи программного обеспечения могут сообщить Microsoft Corporation о существовании ошибки 28 ошибок. Затем Microsoft Corporation может исправить эти ошибки в исходном коде и подготовить обновление для загрузки. Поэтому, когда вы сталкиваетесь с запросом на обновление Windows Operating System, это обычно связано с тем, что это решение для исправления ошибки 28 и других ошибок.
Что вызывает ошибку времени выполнения 28?
Ошибки выполнения при запуске Windows Operating System – это когда вы, скорее всего, столкнетесь с «Out of stack space». Следующие три наиболее значимые причины ошибок выполнения ошибки 28 включают в себя:
Ошибка 28 Crash – Ошибка 28 может привести к полному замораживанию программы, что не позволяет вам что-либо делать. Это возникает, когда Windows Operating System не реагирует на ввод должным образом или не знает, какой вывод требуется взамен.
Утечка памяти «Out of stack space» – при утечке памяти Windows Operating System это может привести к медленной работе устройства из-за нехватки системных ресурсов. Есть некоторые потенциальные проблемы, которые могут быть причиной получения проблем во время выполнения, с неправильным кодированием, приводящим к бесконечным циклам.
Ошибка 28 Logic Error – логическая ошибка возникает, когда компьютер генерирует неправильный вывод, даже если пользователь предоставляет правильный ввод. Это происходит, когда исходный код Microsoft Corporation вызывает уязвимость при обработке информации.
Microsoft Corporation проблемы с Out of stack space чаще всего связаны с повреждением или отсутствием файла Windows Operating System. Как правило, решить проблему позволяет получение новой копии файла Microsoft Corporation, которая не содержит вирусов. В качестве последней меры мы рекомендуем использовать очиститель реестра для исправления всех недопустимых Out of stack space, расширений файлов Microsoft Corporation и других ссылок на пути к файлам, по причине которых может возникать сообщение об ошибке.
Типичные ошибки Out of stack space
Общие проблемы Out of stack space, возникающие с Windows Operating System:
- «Ошибка Out of stack space. «
- “Out of stack space не является приложением Win32.”
- «Извините, Out of stack space столкнулся с проблемой. «
- «К сожалению, мы не можем найти Out of stack space. «
- “Отсутствует файл Out of stack space.”
- «Проблема при запуске приложения: Out of stack space. «
- «Out of stack space не выполняется. «
- «Out of stack space выйти. «
- “Неверный путь к приложению: Out of stack space.”
Проблемы Windows Operating System Out of stack space возникают при установке, во время работы программного обеспечения, связанного с Out of stack space, во время завершения работы или запуска или менее вероятно во время обновления операционной системы. Документирование проблем Out of stack space в Windows Operating System является ключевым для определения причины проблем с электронной Windows и сообщения о них в Microsoft Corporation.
Out of stack space Истоки проблем
Большинство проблем Out of stack space связаны с отсутствующим или поврежденным Out of stack space, вирусной инфекцией или недействительными записями реестра Windows, связанными с Windows Operating System.
В частности, проблемы с Out of stack space, вызванные:
- Недопустимые разделы реестра Out of stack space/повреждены.
- Зазаражение вредоносными программами повредил файл Out of stack space.
- Другая программа (не связанная с Windows Operating System) удалила Out of stack space злонамеренно или по ошибке.
- Другая программа находится в конфликте с Windows Operating System и его общими файлами ссылок.
- Поврежденная загрузка или неполная установка программного обеспечения Windows Operating System.
Продукт Solvusoft
Загрузка
WinThruster 2022 – Проверьте свой компьютер на наличие ошибок.
Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11
Установить необязательные продукты – WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление
Обработка ошибок в макросе VBA Excel
Я пытаюсь создать книгу для своих требований. Первый лист содержит ячейку типа «Текст», предназначенную для значения ДАТА.
Я добавляю метод Workbook_Open для установки сегодняшней даты при открытии книги, как показано ниже.
Private Sub Workbook_Open() Sheet1.Range('F6') = Date End Sub
И я также добавляю метод Worksheet_Change для листа этой ячейки. Это для проверки, как показано ниже.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = '$F$6' Then 'Getting insertion date. insertionDate = Sheet1.Range('F6') 'If date field is not empty If insertionDate <> '' Then Call MsgBox('Insertion Date must be inserted.') End If End If End Sub
После этого я протестировал свой код. При открытии трудовой книжки я получил следующую ошибку.
Run-time error '28': Out of stack space
При нажатии кнопки «Отладка» курсор отображается в первой строке метода Worksheet_Change.
Я перепробовал все, что думал. Но ничего не происходит. Помоги мне. Спасибо.
Получил с этим кодом. Меня это не устраивает, но моя проблема решена.
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = '$F$6' Then 'Getting insertion date. insertionDate = Sheet1.Range('F6') 'If date field is not empty If insertionDate <> '' Then Call MsgBox('Insertion Date must be inserted.') End If End If Application.EnableEvents = True End Sub
- Возможно, ваш код попал в рекурсивное триггерное событие.
- Нет, я думаю, это причина “Multiple Sub”. Спасибо за совет.
Msgbox
не нужно Call
заявление. Попробуйте удалить Call
и снова протестируем. И у меня есть ссылка на https://support.microsoft.com/en-us/kb/126090?wa=wsignin1.0. Возможно, это объясняет вашу ошибку.
Возможные источники ошибки отмечены в коде
Option Explicit ' Candidate Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = '$F$6' Then 'Getting insertion date. Dim insertionDate as String ' Candidate insertionDate = Sheet1.Range('F6').Text ' Candidate 'If date field is not empty If insertionDate <> '' Then MsgBox('Insertion Date must be inserted.') ' Candidate End If End If End Sub
Убедитесь, что вы разместили Worksheet_Change
в модуле листа.
- Фактически, в другом модуле insertDate объявлен как Public. Спасибо за совет.
Tweet
Share
Link
Plus
Send
Send
Pin
t17fenics 0 / 0 / 0 Регистрация: 11.03.2015 Сообщений: 4 |
||||
1 |
||||
11.03.2015, 12:47. Показов 3671. Ответов 7 Метки нет (Все метки)
Добрый день.
Подскажите пожалуйста, в чем может быть проблема?
0 |
Заблокирован |
|
11.03.2015, 12:57 |
2 |
Вы не пробывали перевести ваше сообщение и понять что оно озночает ?
0 |
Заблокирован |
|
11.03.2015, 13:15 |
3 |
check
Test1 Что означают эти загадочные буквосочетания?
0 |
0 / 0 / 0 Регистрация: 11.03.2015 Сообщений: 4 |
|
11.03.2015, 13:20 [ТС] |
4 |
Сорри, не вычистил при публикации.
0 |
Заблокирован |
|
11.03.2015, 13:24 |
5 |
out of stack происходит обычно при непродуманном рекурсивном вызове процедур друг из друга, что наглядно демонстрирует ваш случай.
0 |
0 / 0 / 0 Регистрация: 11.03.2015 Сообщений: 4 |
|
11.03.2015, 13:32 [ТС] |
6 |
Хм. ошибка проявляется только после 6000 запусков этих процедур.
0 |
Заблокирован |
|
11.03.2015, 13:42 |
7 |
Воспользуйтесь ключевыми словами .. is Nothing, если не иностранец..
0 |
0 / 0 / 0 Регистрация: 11.03.2015 Сообщений: 4 |
|
11.03.2015, 14:23 [ТС] |
8 |
Вобщем осознал корень проблемы. Спасибо Апострофф Код просчитывающий движение надо как то по другому писать. без бесконечного вызова процедур друг из друга.
0 |
I am working on some project that contains 276 forms in Excel 2010. What is the purpose of the application: form1 appears, users input something, press next and I validate the user input so I know what is the next form that the user needs to fill. And so goes on, but somewhere in the middle of the whole process I get the error 28: out of stack space.
I have searched the internet, but didn’t found any way to solve this, so the user won’t be interrupted in the middle of the application.
Basically, what I want is somehow to clear the stack, if it is possible.
EDIT:
Private Sub btnNext_Click()
'Getting the column where I need to insert the value from the form
Dim coll As Integer
coll = findColumn("WP10200")
'Getting the row where I need to insert the value from the form
Dim row As Integer
row = ActiveCell.row
'Getting the user value from the textbox
Dim val As String
val = txtValue.Text
If val >= 1 And val <= 4 Then
Cells(row, coll).Value = val
If val = 1 Then
Unload Me
WP10215.Show
Else
Unload Me
WP10202.Show
End If
Else
MsgBox "Not valid input"
End If
End Sub
Function findColumn(CellVal As String) As Integer
Dim rng As Range
Dim cell As Range
Dim coll As Integer
Set rng = Range("A1:JC1")
For Each cell In rng.Cells
Dim tmp As String
tmp = cell.Value
If tmp = CellVal Then
coll = cell.Column
Exit For
End If
Next cell
findColumn = coll
End Function
Private Sub UserForm_Initialize()
Me.txtValue.SetFocus
End Sub
This code is almost same in all forms (with some exceptions, i.e. different input, displaying some other form and so on)
WP10200 – is the id of the question the user needs to input something. WP10215 and WP10202 too, they are forms like this one with some logic inside.
Some additional info, all of these forms are in one macro that the user can start, and than it fills the forms as they show up.
denis76 Пользователь Сообщений: 22 |
#1 31.05.2016 15:23:02 Добрый день! Столкнулся неожиданно с такой ситуацией: при вызове вложенной процедуры в VBA появляется указанное сообщение об ошибке:
Собственно говоря, процедура довольно громоздкая, обрабатывает и пересчитывает массивы данных размером примерно 10000*200 ячеек… хотя работала до сего времени вполне нормально… Собственно говоря, в чем здесь может быть причина появления такого сообщения: Какие тут способы решения имеются – может, надо как-то уничтожать переменные после использования, очищать стек – как это сделать?… Может, какие-то параметры в реестре надо подправить или еще где?.. Что известно по данному вопросу уважаемым специалистам?.. Спасибо заранее… |
||
Sanja Пользователь Сообщений: 14849 |
Собственно говоря почему-бы не в ПОИСК ? Согласие есть продукт при полном непротивлении сторон. |
denis76 Пользователь Сообщений: 22 |
#3 31.05.2016 15:46:06 Хорошо… Вот, смотрю, там 5 случаев указано, к моему может, видимо, это относиться:
Все равно странно, больше всего ведь места массивы занимают, но не на них ошибка вылезает… Еще вот, смотрю в редакторе VBA – там такая закладка Call stack – почему-то в ней список в 50 с лишним процедур, когда у меня столько их одновременно не вызывается… и некоторые повторяются почему-то… |
||
Нет файла – нет идей, что тут не понятно. |
|
Игорь Пользователь Сообщений: 3643 |
Причина – большой размер массивов Как вариант еще одной причины, – вызов функций с аргументами в виде больших массивов |
denis76 Пользователь Сообщений: 22 |
#6 31.05.2016 16:12:19
Глубоко сомневаюсь, что данный файл кому-то разбирать охота будет… но думаю, что основные варианты можно предположить и без его досконального исследования… |
||
denis76 Пользователь Сообщений: 22 |
#7 31.05.2016 16:14:51
Про массивы – да, все так, но ведь он не выдает Out of memory (это прошло с установкой 64-битной версии), а вот на стек именно ругается-то… А каков этот стек и его допустимый размер – мне пока неведомо… |
||
denis76 Пользователь Сообщений: 22 |
#8 31.05.2016 16:17:04
Так вроде бы по умолчанию они так и передаются, нет разве?.. И вроде как лишних копий не делается… Изменено: denis76 – 01.06.2016 22:06:07 |
||
Hugo Пользователь Сообщений: 23365 |
Мне стека не хватало пару раз из-за рекурсии. |
denis76 Пользователь Сообщений: 22 |
Разобрался, в чем дело… когда начал код улучшать, нашел место, где процедуры вызывают одна другую поочередно… |
Hugo Пользователь Сообщений: 23365 |
#11 01.06.2016 12:07:48 Т.е. тоже виновата рекурсия? |