powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Цикл
22 сообщений из 22, страница 1 из 1
Цикл
    #38081654
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dim a As Workbook
Dim i, k As Integer
Set a = ThisWorkbook
k = a.Sheets("111").Range("A1").End(xlDown).Row
For i = 2 To k
a.Sheets("111").Cells(i, 106).Value = CDate("01.12.2012") - a.Sheets("111").Cells(i, 104).Value
Next i

Всем привет. Считаю разность дат в цикле, но цикл не работает. Подскажите, плиз, что не так...
...
Рейтинг: 0 / 0
Цикл
    #38081657
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim12345678Подскажите, плиз, что не так...Терминология в первую очередь.
Что значит "цикл не работает"? итератор не меняется? если нет - учи правильные слова, если да - говори, как определил.
...
Рейтинг: 0 / 0
Цикл
    #38081663
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выдает ошибку "type mismatch". Я так понимаю, что что-то неправильно определено...
...
Рейтинг: 0 / 0
Цикл
    #38081669
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На какой строке выдает?
Что же все клещами-то надо вытягивать?
...
Рейтинг: 0 / 0
Цикл
    #38081670
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сразу на 2 строке
...
Рейтинг: 0 / 0
Цикл
    #38081676
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim12345678Сразу на 2 строке
Код: vbnet
1.
Dim i, k As Integer

???
тут все правильно, за исключением того,что если i хочется определить как Integer, нужно писать
Код: vbnet
1.
Dim i As Integer, k As Integer
...
Рейтинг: 0 / 0
Цикл
    #38081677
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем. Я понял, что не дополнил картину :) В столбце с датами стоят еще #Н/Д. Видимо, поэтому и не работает...
...
Рейтинг: 0 / 0
Цикл
    #38081681
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И нужно посчитать разность только тех ячеек, в которых стоит дата.
...
Рейтинг: 0 / 0
Цикл
    #38081686
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел ошибку... во второй строке стоит #Н/Д, вот он и стопариться сразу.
...
Рейтинг: 0 / 0
Цикл
    #38081687
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
If IsDate(a.Sheets("111").Cells(i, 104).Value) Then
...
Рейтинг: 0 / 0
Цикл
    #38081691
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое. Все заработало.
...
Рейтинг: 0 / 0
Цикл
    #38081797
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dim a As Workbook
Set a = ThisWorkbook
k = a.Sheets("111").Range("A1").End(xlDown).Row
For i = 2 To k
If a.Sheets("111").Cells(i, 107).Text Like "*Авто*" And a.Sheets("111").Cells(i, 103) = "Ангарск" Then [B16] = WorksheetFunction.Sum(a.Sheets("111").Cells(i, 19))
Next i
End Sub

Есть еще вопрос :) Этот цикл должен, учитывая 2 условия, записывать сумму в ячейку B16. Но он всегда выдает значение последней ячейки... Как его подправить, чтобы сумма правильно считалась? Спасибо.
...
Рейтинг: 0 / 0
Цикл
    #38081817
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Dim a As Workbook
Set a = ThisWorkbook
k = a.Sheets("111").Range("A1").End(xlDown).Row
For i = 2 To k
If a.Sheets("111").Cells(i, 107).Text Like "*Авто*" And a.Sheets("111").Cells(i, 103) = "Ангарск" Then [B16] = WorksheetFunction.Sum(a.Sheets("111").Cells(i, 19))
Next i
End Sub


Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
Цикл
    #38081818
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишет то, что ты его попросил.
А что надо писать - непонятно.
...
Рейтинг: 0 / 0
Цикл
    #38081873
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про оформление понял :)

В столбце 19 стоят числа. Он должен брать числа из столбца 19, которые соответствуют 2 условиям и записывать их сумму в ячейку B16. Сейчас же он просто записывает последнюю ячейку, соответствующую этим 2 условиям.
...
Рейтинг: 0 / 0
Цикл
    #38081888
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так может ты хотел написать:
Код: vbnet
1.
[B16] = [B16] + a.Sheets("111").Cells(i, 19)
...
Рейтинг: 0 / 0
Цикл
    #38081896
Maxim12345678
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Именно так и хотел Недавно просто начал осваивать макросы, иногда бывают затупы в легких местах.

ЗЫ: стыдно в цикле такую ошибку делать
...
Рейтинг: 0 / 0
Цикл
    #38161466
RomanSamara10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста как правильно написать скрипт. Ситуация такая: есть перечень номеров (они все время разные) - выбираются селектом из базы по условиям. По каждому номеру отдельно нужно внести изменения в кучу других таблиц
ПРИМЕР: в эти таблицы вносим изменения
(update eo12 set m1 = ... where nomer = 52529 and d1 = (select d1 from eo53 where nomer = 52529)
update eo12 set m1 = ... where nomer = 52529 and d1 = (select d1 from eo53 where nomer = 52529)
update eo18 set s8 = ... where nomer = 52529 and d1 = (select d1 from eo53 where nomer = 52529)
update eo62 set g5 = ... where nomer = 52529 and d1 = (select d1 from eo53 where nomer = 52529)
update eo17 set h2 = ... where nomer = 52529 and d1 = (select d1 from eo53 where nomer = 52529)
update eo13 set m5 = ... where nomer = 52529 and d1 = (select d1 from eo53 where nomer = 52529)
update eo10 set w1 = ... where nomer = 52529 and d1 = (select d1 from eo53 where nomer = 52529)
update eo52 set x2 = ... where nomer = 52529 and d1 = (select d1 from eo53 where nomer = 52529) и т.д.)

выбираю перечень номеров: select nomer from EO55 where d7 = 40, and r5 = 90
результат (52529, 56234, 25148, 10238, 80236, 29105, ........) -их бывает много

Хотелось бы узнать можно ли в один скрипт включить и select и update и полностью автоматизировать скрипт. Что бы при запуске он находил записи по условиям и обрабатывал каждую запись отдельно. Заранее благодарен всем за помощь
...
Рейтинг: 0 / 0
Цикл
    #38161596
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RomanSamara10,
Код: vbnet
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.
31.
32.
33.
34.
dim r, r2, d1&, sWHERE$

set r = createobject("adodb.recordset")
set r2 = createobject("adodb.recordset")

r.open "select nomer from EO55 where d7=40 and r5 = 90", {соединение}, {параметры}

' задать connection и др.параметры для r2
' ...

if not r.bof then
do until r.eof
  
  r2.open "select d1 from eo53 where nomer=" &  r("nomer").value
  if not r2.bof then
    d1 = r2("d1").value
    sWHERE =  " where nomer=" & r("nomer").value " and d1=" & d1

    ' выполняем запросы
    ' CNN - подключение к базе
    CNN.execute "update eo12 set m1 = ... " & sWHERE

    CNN.execute "update eo18 set s8 = ... " & sWHERE
    '...
    '...
  end if
  r2.close
  r.movenext
loop
end if

r.close
set r = nothing
set r2 = nothing

...
Рейтинг: 0 / 0
Цикл
    #38161740
RomanSamara10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл написать что нужен скрипт для QA sql2008
...
Рейтинг: 0 / 0
Цикл
    #38161884
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RomanSamara10 скрипт для QA sql2008Причем тут Microsoft Office?
...
Рейтинг: 0 / 0
Цикл
    #38162544
RomanSamara10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ошибся форумом. Вопрос снят
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Цикл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]