Vba excel ошибка 400
Я пытаюсь запустить макрос, который удалит строки, которые не содержат определенного значения в столбце B. Вот мой код:
теперь он должен делать следующее:
1.) Найти количество строк, чтобы пройти и установить, что как count (это работает)
2.) Начните с строки 21 и найдите "OSR Platform" и "IAM" в столбце B [этот вид работ (см. ниже)]
3.) Если он не находит ни того, ни другого, удалите всю строку и отрегулируйте граф и номер строки по мере необходимости (это работает)
по какой-то причине, когда код попадает в первый оператор If, появляется окно ошибки с красным X, которое просто говорит "400."Насколько я могу судить, я все написал синтаксически грамотно, но явно что-то не так.
вы можете начать цикл в другую сторону. При удалении строки все предыдущие строки смещаются. Вы учитываете это, но обратный цикл проще (мне все равно), чтобы понять, чем отслеживать, когда я смещаю текущую позицию в цикле:
For i = count To 21 Step -1
кроме того, вы слишком полагаетесь на Application.WorksheetFunction :
(Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("OSR Platform", Range("B" & i))) = False)
InStr(Range("B" & i).value, "OSR Platform") > 0
Application.WorksheetFunction занимает гораздо больше вычислительной мощности, и в зависимости от того, что вы пытаетесь достичь, это может занять значительно больше времени. Также для этого предложенного изменения размер кода уменьшается и становится легче читать без него.
код count также можно получить без A.WF :
- Excel 2000/03: count = Range("AF65536").End(xlUp).Row
- Excel 2007/10: count = Range("AF1048576").End(xlUp).Row
- независимого версии: count = Range("AF" & Rows.Count).End(xlUp).Row
еще одна вещь что вы можете сделать (и должны сделать в этом случае) объединить If заявления в одно.
сделать эти изменения, вы в конечном итоге с:
если это не поможет, то вы можете шаг за шагом через строку кода. Добавьте точку останова и выполните шаг с ф8 . Выделите переменные в коде, щелкните правой кнопкой мыши, выберите "Добавить часы". ", нажмите кнопку "OK", (вот отличный ресурс, который поможет вам с отладкой в генерал!--50-->) и обратите внимание на следующее:
- какая строка попадает в ошибку?
- каково значение i и count когда это произойдет? (добавьте часы на эти переменные, чтобы помочь)
это сработало для меня. Он использует автофильтр, не требует циклов или функций рабочего листа.
этот код применяет автофильтр к столбцу B, чтобы увидеть, какие строки не содержат ни "OSR Platform", ни" IAM " в столбце B. Затем он просто удаляет оставшиеся строки больше 21. Сначала проверьте его на копии книги.
С огромным кивком этот OzGrid thread, потому что я никогда не могу вспомнить правильный синтаксис для выбора видимых ячеек после фильтрующий.
Что вызывает ошибку VBA 400 в Excel?
Вот причины, из-за которых возникает ошибка 400 при запуске макроса в Excel:
- Неправильная установка программного обеспечения Office.
- В коде VBA есть ошибка.
- Недопустимое значение аргумента.
- Запущенный макрос поврежден.
- Файлы, связанные с Excel, заражены каким-либо вредоносным ПО.
- Ошибка чтения / записи из файла.
- Неверные записи в реестре.
Если вы столкнулись с ошибкой 400 в Excel, вы можете использовать перечисленные ниже решения для ее устранения.
- Переместите макросы в новый модуль.
- Включите доверенный доступ к VBA.
- Просмотрите свой код VBA.
- Восстановите Microsoft Excel.
- Удалите, а затем повторно установите Excel.
- Некоторые другие методы, такие как сканирование на наличие вредоносных программ и т. Д.
Давайте подробно обсудим эти методы.
1]Переместить макросы в новый модуль
Перенос макросов в новый модуль может решить проблему в случае внешней ошибки. Для этого вы можете использовать следующие шаги:
Перейдите на вкладку «Разработчики» и выберите «Визуальный редактор». Если вы не видите вкладку «Разработчики» на главной ленте в Excel, перейдите в «Файл»> «Параметры» и на вкладке «Настройка лент» установите флажок «Разработчики» в разделе «Основные вкладки».
Теперь в окне Microsoft Visual Basic для приложений щелкните меню «Вставка» и выберите параметр «Модуль».
После этого вставьте код макроса в этот новый модуль и сохраните его, используя специальную опцию в меню «Файл».
Кроме того, вам нужно удалить старый модуль, щелкнув его правой кнопкой мыши и используя Удалять вариант.
Наконец, щелкните Файл> Закрыть и вернуться в Microsoft Excel и посмотрите, устранена ли ошибка 400 в Excel.
2]Включить надежный доступ к VBA
Вы можете включить доверенный доступ к VBA и посмотреть, исчезла ли проблема. Вот шаги, чтобы включить доверенный доступ к VBA:
3]Проверьте свой код
4]Восстановить Microsoft Excel
5]Удалите, а затем повторно установите Excel.
Вы также можете попробовать удалить, а затем переустановить программное обеспечение Office и Excel, чтобы начать заново. Посмотрите, устраняет ли это ошибку.
6]Некоторые другие методы
Кроме того, некоторые другие решения также могут работать, например:
- Вы можете попробовать запустить сканирование SFC, чтобы проверить и восстановить поврежденные системные файлы.
- Некоторые вредоносные программы также могут вызывать эту ошибку. Итак, проверяйте и удаляйте вредоносные программы и подозрительные приложения с помощью Microsoft Defender или сторонней антивирусной или антивредоносной программы.
- Попробуйте удалить поврежденные данные кеша и системные ненужные файлы.
Надеюсь, что приведенные выше решения помогут!
.
Создала примитивный макрос (удалаяет хвостовые пробелы в первой колонке), сделала кнопку на панели быстрого запуска.
Программой стороннего разработчика открывается отчет в Excel, кнопка с макросом имеется, при нажатии выдает ошибку 400.
Руками открываю личную книгу макросов, все начинает работать.
Станность в том, что на одном компе все работает на другом нет. Разница в ОС, на ХР работает, на Win 7 не работает
Подскажите, пож-та, что и где может блокировать загрузку личной книге макросов. Разработчики программы утверждают что ничего не блокируют, просто открывают эксель и туда открываю книгу сформированную ими
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
Об этом я догадалась.
Хотелось бы еще знать что отключить.
если эксель просто открыть, то все макросы работаютесли эксель просто открыть, то все макросы работают |
ищите причину в "сторонней программе" "Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
1. Надо смотреть код макроса.
Вообще, в вашем случае достаточно макроса из одной строки кода.
2. Такое может быть, если присутствуют 2 макроса с одинаковым именем.
(один - ваш макрос, другой - из какой-либо надстройки или файла)
Ну или макрос ваш криво написан.
'
'в колонке A1 удалаяет хвостовые пробелы
'
kol_str1 = Range("a1").CurrentRegion.Rows.Coun t
For i = 1 To kol_str1
Cells(i, 1).Value = Trim(Cells(i, 1).Value)
Next
End Sub
частично разобралась, но не понимаю почему так происходит. Произошло следущее:
После того как сторонней программой открылся отчет в Excel (в этот момент личная книга макросов не загружена), нажимаю на кнопку с макросом
1. на компе на котором работает: подгружается личная книга макросов по пути C:\Documents and Settings\Name_user\Application Data\Microsoft\Excel\XLSTART -- оттуда где он создается по-умолчанию
2. на компе на котором не работает: личная книга макросов пытается подгрузиться по пути C:\Documents and Settings\Name_user\Мои документы (естественно личной там нет, поэтому макрос и не работает) -- этот путь прописан в Excel в Параметры->Сохранение->Расположение файлов по умолчанию .
Так вот, если путь Расположения файлов по умолчанию я меняю на . \XLSTART, то все начинает работать. но это вроде как неправильно.
и еще Расположение файлов по умолчанию и на 1-м и на 2-м компе одинаково
Может чего в реестре на Win 7 (2-ой комп) не хватает
Как правило, специалисты по ПК называют «Excel Error 400» как тип «ошибки времени выполнения». Разработчики программного обеспечения пытаются обеспечить, чтобы программное обеспечение было свободным от этих сбоев, пока оно не будет публично выпущено. Как и во всем в жизни, иногда такие проблемы, как ошибка 400, упускаются из виду.
Что вызывает ошибку 400 во время выполнения?
Сбой во время запуска Microsoft Excel или во время выполнения, как правило, когда вы столкнетесь с «Excel Error 400». Следующие три наиболее значимые причины ошибок выполнения ошибки 400 включают в себя:
Ошибка 400 Crash - Ошибка 400 остановит компьютер от выполнения обычной программной операции. Обычно это происходит, когда Microsoft Excel не может обработать данные в удовлетворительной форме и поэтому не может получить ожидаемый результат.
Утечка памяти «Excel Error 400» - этот тип утечки памяти приводит к тому, что Microsoft Excel продолжает использовать растущие объемы памяти, снижая общую производительность системы. Критическими проблемами, связанными с этим, могут быть отсутствие девыделения памяти или подключение к плохому коду, такому как бесконечные циклы.
Ошибка 400 Logic Error - логическая ошибка возникает, когда компьютер генерирует неправильный вывод, даже если пользователь предоставляет правильный ввод. Это связано с ошибками в исходном коде Microsoft Corporation, обрабатывающих ввод неправильно.
Такие проблемы Excel Error 400 обычно вызваны повреждением файла, связанного с Microsoft Excel, или, в некоторых случаях, его случайным или намеренным удалением. Как правило, решить проблему можно заменой файла Microsoft Corporation. Если ошибка Excel Error 400 возникла в результате его удаления по причине заражения вредоносным ПО, мы рекомендуем запустить сканирование реестра, чтобы очистить все недействительные ссылки на пути к файлам, созданные вредоносной программой.
Распространенные проблемы Excel Error 400
Эти проблемы Microsoft Excel, связанные с Excel Error 400, включают в себя:
- «Ошибка программного обеспечения Excel Error 400. «
- «Excel Error 400 не является программой Win32. «
- «Извините за неудобства - Excel Error 400 имеет проблему. «
- «К сожалению, мы не можем найти Excel Error 400. «
- «Excel Error 400 не может быть найден. «
- "Ошибка запуска программы: Excel Error 400."
- «Excel Error 400 не работает. «
- «Ошибка Excel Error 400. «
- «Ошибка в пути к программному обеспечению: Excel Error 400. «
Обычно ошибки Excel Error 400 с Microsoft Excel возникают во время запуска или завершения работы, в то время как программы, связанные с Excel Error 400, выполняются, или редко во время последовательности обновления ОС. Запись ошибок Excel Error 400 внутри Microsoft Excel имеет решающее значение для обнаружения неисправностей электронной Windows и ретрансляции обратно в Microsoft Corporation для параметров ремонта.
Корень проблем Excel Error 400
Проблемы Excel Error 400 могут быть отнесены к поврежденным или отсутствующим файлам, содержащим ошибки записям реестра, связанным с Excel Error 400, или к вирусам / вредоносному ПО.
Помогите с проблемой.
Ошибка 400 в макросе удаления рисунков. Сразу не возникала.
Или может другой метод есть удалить рисунок.
Макрос вставляет определенный массив, в котором есть рисунок. При смене данного массива на другой, старый массив убирается, а рисунок, который с ним был остается. Для этого и использую макрос удаления рисунка, а он выполняется, появляется ошибка и начинает глючить excel.
Помощь в написании контрольных, курсовых и дипломных работ здесь
Ошибка в Макросе
Написал Макрос Sub AfterMarket() 'Rows("1:1").Select 'Selection.Delete Shift:=xlUp.
Ошибка в макросе
Добрый вечер. Подскажите, пожалуйста, как устранить ошибку в макросе. Подключаюсь к базе.
Ошибка в макросе
Добрый день, Подскажите где ошибка в моем макросе
При наличии рисунков в ячейках F5:AS500 все прекрасно удаляется. Андрей Лида, 1) а у вас этот макрос не подключен ли к шэйпу, находящемуся в этом блоке ячеек?; 2) если у вас действительно на ваших данных вылетает (если с пунктом 1 всё хорошо), то попробуйте перед End If поставить DoEvents
Сначала вставляю из выпадающего списка, затем удаляю кнопкой и ОШИБКА 400.
Добавлено через 2 минуты
Пробовал макрос:
Sub МакросУдалР()
'
' МакросУдалР
'
'
ActiveSheet.DrawingObjects.Select
Selection.Delete
End Sub
Так он удаляет все рисунки и кнопку макроса тоже.
Андрей Лида, вы знаете свою программу, а я нет. Где там у вас выпадающий список, надо бы подробнее пояснения. Запустил просто Чистку, никаких ошибок. открыл. очистил. ошибка.закрыл без сохранения. открыл.очистил. ошибки нет.
еще раз, ошибки нет. Не постоянная она какая то. В желтых ячейках выпадающий список. при выборе должен вставиться массив.
Сразу нет, а потом появляется.
Добавлено через 1 минуту
Макрос очистки ячеек нормально работает, а удаления рисунков нет.
Андрей Лида, открыл, очистил - норма и так раз 20. Вы всё-таки поставьте в МакросУдалРис DoEvents перед End If хуже не будет. В машинах с разной скоростью процессора могут быть ошибки при операциях типа создать удалить шэйп. У меня комп старенький и одна программа прекрасно работала. Отдал пользователю, процессор в разы быстрее и затыкалась. Поставил DoEvents в подозрительных местах - отлично работает и у него.
Добавлено через 2 минуты
ну и где же выпадающие и во второй версии вашего файла?
Читайте также: