Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Александр ANB

Выкидывает из цикла For при присвоении

21.09.2010, 19:46. Показов 1986. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что за ерунда, при присвоение значения ячейке, цикл For ... next прерывается.
Например
Visual Basic
1
2
3
4
5
6
7
Range("A1").Select
For iCounter = iWork To 1 Step -1  
    If IsNumeric(Right(strWork, iCounter)) Then
    Exit For
    End If
    ActiveCell.Value = 1
Next
Без ActiveCell.Value = 1 крутится в цикле как положено, толко ставишь присвоение хоть этой, хоть такой конструкцией:
Visual Basic
1
2
3
4
5
6
Dim oRange As Range
Set oRange = Worksheets(Лист1").Cells(3, 1)
For iCounter = 1 To iSerNum - 1
  ...   
oRange.Value = 123456 
next
сразу после присваения ячейке значения цикл прекращается и управвление передается на первый! оператор макроса
Private Sub Worksheet_Change(ByVal Target As Range)
Что не так!?
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.09.2010, 19:46
Ответы с готовыми решениями:

При сложении двух чисел получается сумма которая почемуто изменяется при присвоении переменной
В режиме дебага в VS смотрю на код, который складывает два числа, получается корректный результат, но при присвоении переменной получается...

Ошибка при присвоении
const n=9; C: array of 0..1=((0,1,0,0,0,0,0,0,0,1), (1,0,1,1,1,0,0,0,0,0), (0,1,0,0,0,1,0,0,0,0), (0,1,0,0,1,0,0,0,0,0), ...

Автопреобразование при присвоении
Есть две структуры (или класса) с разными полями. В приложение часто возникает задача присвоения части значений полей одной структуры полям...

6
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
21.09.2010, 23:22
Всё так. Произошло изменение листа, вызывается процедура Worksheet_Change.
0
Частенько бываю
 Аватар для Vlanib
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
22.09.2010, 05:45
Измените код так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Application.EnableEvents = False
 
Range("A1").Select
For iCounter = iWork To 1 Step -1  
    If IsNumeric(Right(strWork, iCounter)) Then
    Exit For
    End If
    ActiveCell.Value = 1
Next
 
Application.EnableEvents = True
1
Александр ANB
22.09.2010, 23:17
VLANID! Все получилось. Я просто счастлив (до следующей ошибки). И кстати, ты случаем не знаешь, эту хрень (Private Sub Worksheet_Change(ByVal Target As Range) можно заставить реагировать только на определенные ячейки? Или столбцы?
Частенько бываю
 Аватар для Vlanib
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
23.09.2010, 05:59
Можно. Например так:
Visual Basic
1
2
3
4
5
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
MsgBox "Ðåàãèðóåì íà èçìåíåíèå â ÿ÷åéêå À1"
End If
End Sub
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
23.09.2010, 16:58
Vlanib,
"Реагируем на изменение в ячейке А1"
В данном случае вместо
Visual Basic
1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
не реагирующую на изменение в ячейке, надо использовать
Visual Basic
1
Private Sub Worksheet_Change(ByVal Target As Range)
1
Частенько бываю
 Аватар для Vlanib
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
23.09.2010, 17:08
Да. Че-то не обратил внимание. Дефолтом событие страницы встало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.09.2010, 17:08
Помогаю со студенческими работами здесь

Ошибка при присвоении(список)
Вот задание:При поступлении в университет лица, получившие оценку «неудовлетворительно» на первом экзамене, ко второму экзамену не...

Мусор при присвоении оператора +
программа по подсчету времени. Сумируются 2 времени (TT (min hour) и TM(min hour)) time operator+(const time&a){ time temp; ...

Ошибка при присвоении лейблу
b:=0; for i:=1 to 14 do b:=b+Excel.Worksheets.Cells.Value; for i:=1 to 14 do b:=b+Excel.Worksheets.Cells.Value; ...

пару дней назад приобрёл ноутбук . И постоянно выкидывает из игр на рабочий стол выкидывает даже когда фильм смотрю !!!
подскажите в чём проблемма

Segfault при присвоении значения массиву
Доброго времени суток. #include <stdio.h> void del_char(char *str0, const char *str1); /* Удаляет из str0 те символы, которые есть в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru