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

Поиск ошибок в цикле

07.04.2017, 12:06. Показов 913. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день,
помогите найти ошибку в коде. Задача: макрос по дате отгрузки заказа ищет столбец с заголовком, соответствующим дате, определяет пересечение строки и столбца и закрашивает ячейки со столбца даты отгрузки и до столбца с последней датой месяца. Таблица составляется на текущий месяц.
Проблема: 1. если первая строка таблицы содержит дату отгрузки вне текущего месяца, выдает ошибку и останавливается.
2. если 2 строки в таблице содержат даты отгрузки вне текущего месяца, нормально пропускает первую, но останавливается на второй.

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

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub test2()
    Dim i As Integer
    Dim a As Integer
    Dim preLastColumn As Integer
    
    preLastColumn = Range("5:1").Find("Итог").Column - 1
    
    For i = 6 To 970 Step 1
     ColumnName = Cells(i, 10)
     
     
     Range("5:1").Find(ColumnName).Select: On Error GoTo B: Err.Clear
     a = ActiveCell.Column
     For j = a To preLastColumn Step 1
     Cells(i, j).Select
     
     'If ActiveCell.Value IsEmpty Then
     With Selection.Interior
       .Pattern = xlSolid
       .PatternColorIndex = xlAutomatic
       .ThemeColor = xlThemeColorAccent6
        End With
    'End If
    
    Next j
    
B:
    Next i
    
End Sub
Вложения
Тип файла: xlsx Мониторинг отгрузки_март.xlsx (73.4 Кб, 3 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.04.2017, 12:06
Ответы с готовыми решениями:

Не работает Перехват ошибок в цикле
Всем привет! Часть кода на VBA: j=0 Do While j < 10 On Error GoTo Lebel1 z =...

Цикл в цикле с выводом ошибок в текстовый файл
Есть бат-файл, нужно создать его аналог VBS с доработкой, в качестве примера взят notepad.exe @echo on for /L %%i in (1,1,10) do ( ...

Синтаксических и арифметических ошибок в цикле вроде как нет, но он не работает
Вот условие задачи: Дафна инвестировала $100 под простые 10%. Другими словами, ежегодно инвестиция должна приносить 10%...

5
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
07.04.2017, 12:30
Извиняюсь за оформление - нет на работе indenter'а...
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub test2()
    Dim i As Integer
    Dim a As Integer
    Dim preLastColumn As Integer
    
    preLastColumn = Range("5:1").Find("Итог").Column - 1
    For i = 6 To 12
     Set r = Range("5:1").Find(Cells(i, 10))
     If Not r Is Nothing Then
     For j = r.Column To preLastColumn Step 1
     
     'If ActiveCell.Value IsEmpty Then
     With Cells(i, j).Interior
       .Pattern = xlSolid
       .PatternColorIndex = xlAutomatic
       .ThemeColor = xlThemeColorAccent6
        End With
    'End If
    Next j
End If
 
    Next i
    
End Sub
1
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 15
07.04.2017, 12:44  [ТС]
Спасибо, все работает. Будем дальше допиливать.
0
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 15
14.04.2017, 09:43  [ТС]
Hugo121,

день добрый, есть еще вопрос, может сможешь посоветовать:

передали от коллег один отчет, сейчас его оптимизирую, чтоб время не тратить каждый месяц. В нем на одном из листов собираются данные по формулам (около 50 в общей сложности в различных вариациях), но все крутиться вокруг 4-х дат:начало месяца, окончание месяца, последний день предыдущего месяца и первый день последующего. На этом листе каждый месяц редактировали формулы (меняли даты) ручками. Хочу ввести на листы 2 ячейки, в которых будут даты начало отчетного месяца и окончание отчетного месяца и сделать привязку в формулы к этим ячейкам. Идея вроде простая, но почему-то не сработала. Ниже приведена одна из формул. В ней дату нужно заменить на ячейку, пробовал несколько вариантов, но не работает. Подскажи, как это можно реализовать.


=СУММЕСЛИМН(Расчет_надежности[ОП без прочих, шт];Расчет_надежности[Планируемая дата отгрузки_испр];">=01.03.2017";Расчет_надежности[Индикатор включения в расчёт];1)
0
3947 / 2340 / 790
Регистрация: 02.11.2012
Сообщений: 6,220
14.04.2017, 09:58
jonik81, лучше с файлом работать. наглядней будет, да ответ точнее получите.
Code
1
">="&A1
так пробовали?
а вообще данный вопрос не по теме. Один вопрос одна тема - правило.
0
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 15
14.04.2017, 10:08  [ТС]
так не пробовал, сейчас проверю. Спасибо. Про вопрос понял, учту.

Добавлено через 3 минуты
Все отлично работает, еще раз спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.04.2017, 10:08
Помогаю со студенческими работами здесь

Поиск ошибок
Мне нужно написать программу,которая создает текстовый файл(.txt) в котором записаны вводимые данные. Например: Nazvanie: Moskow ...

Поиск ошибок
Помогите плз написать накую программу. Создать окно. На клаве набирается фраза "My private information". Если вся фраза...

Поиск ошибок в программе
Program Ilgizzz; LABEL c; Const n=100;e=0.001; Var x,y,s,xn,xk,dx,a:real; i:integer; Function Fac(k: integer): longint; Begin ...

Поиск ошибок в программе
Доброго времени суток, сейчас стала задача написать программу так, что бы её можно было не просто протестировать на наличие багов, но...

Поиск ошибок в словах
Всем привет! Имеется база данных (interbase) в которой хранится n-ое количество слов русского языка. На форме расположен RichEdit в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru