powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / работа цикла с масивом
25 сообщений из 35, страница 1 из 2
работа цикла с масивом
    #39805182
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята здравствуйте! помогите ЧАЙНИКУ, разобраться с массивом который в цикле, выводящий строку штрафов, заранее спасибо!
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
......
Dim li As Long
 For li = 1 To 10
    li = Sheets("shtraf").Range("A2:F10").Value
   If TextBox2 = li Then
   With Wd.Range.Find
.Execute FindText:="#штраф1", ReplaceWith:=li, Replace:=2
.Execute FindText:="#штраф2", ReplaceWith:=li, Replace:=2
.Execute FindText:="#штраф3", ReplaceWith:=li, Replace:=2
.Execute FindText:="#штраф4", ReplaceWith:=li, Replace:=2
End With
Next li
......
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805188
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуйста.
А вопрос будет?
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805189
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, Простите, разволновался, как мвывести строку штрафов?, т.е. как на рисунке
если в TextBox2 ввести 3000 т тогда
#штраф1 - 1000
#штраф2 - 2000
#штраф3 - 3000
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805196
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яснее не стало.
На рисунке, к примеру, нет никакого "#штраф1"

Тебе нужно четко, ясно, однозначно описать задачу, чтобы любой человек, который не в теме, мог понять.
Тогда, с большой вероятностью, и ответ сам придет
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805203
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, циклом пытаюсь вывести строку штрафов из массива "на рисунке!, в документ Word в метки #штраф1, #штраф2, #штраф3, путем ввода в текстовое поле сумму, на основании чего и выводится в метки соответствующие штрафы.
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805206
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ок, яснее.
Теперь пытаюсь озвучить вопрос, который так и не прозвучал: "как мне взять значение из ячейки, если я знаю номер столбца и номер строки?"
Если так, то ответ Sheets("shtraf").Cells(a, b).Value
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805252
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assei
Код: vbnet
1.
2.
3.
4.
......
Dim li As Long
 For li = 1 To 10
    li = Sheets("shtraf").Range("A2:F10").Value


Бред. Нельзя в цикле изменять итератор цикла. Особенно чайникам.
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805263
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaБред. Нельзя в цикле изменять итератор цикла. Особенно чайникам.ой, а я даже и не заметил этот косяк


По большому счету нужен просто еще один вложенный цикл от 1 до 4
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805275
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, что то я запарился ругается строка " f = Sheets("shtraf").Cells(i, s).Value"
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Dim li
Dim i As Object
Dim s As Object
Dim f
Set i = Range("A2:A10")
Set s = Cells(3, 6)
f = Sheets("shtraf").Cells(i, s).Value
For li = TextBox2 To f

With Wd.Range.Find
    .Execute FindText:="#штраф1", ReplaceWith:=Cells(i, 3).Value, Replace:=2
    .Execute FindText:="#штраф2", ReplaceWith:=Cells(i, 4).Value, Replace:=2
    .Execute FindText:="#штраф3", ReplaceWith:=Cells(i, 5).Value, Replace:=2
    .Execute FindText:="#штраф4", ReplaceWith:=Cells(i, 6).Value, Replace:=2
End With
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805278
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут теперь такой бред, что даже комментировать нет смысла.
Сделай отладку по шагам, и посмотри, что в каждый конкретный момент находится в каждой конкретной переменной.
К примеру, переменная i у тебя объект, дальше ты присваиваешь ей диапазон (Range), а потом используешь в функции Cell в качестве номера строки (номер строки должен быть целым числом).

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

В случае
.Execute FindText:="#штраф1", ReplaceWith:=Cells(i, 3).Value, Replace:=2
у тебя i должен быть номер текущей строки, то есть переменная цикла, а что ты туда пытаешься загнать - вообще непонятно
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805282
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, получилось как то так!
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim li
For li = 1 To 10
li = Sheets("shtraf").Range("A2:F10").Value
With Wd.Range.Find
    .Execute FindText:="#штраф1", ReplaceWith:=Cells(2, 3), Replace:=2
    .Execute FindText:="#штраф2", ReplaceWith:=Cells(3, 4), Replace:=2
    .Execute FindText:="#штраф3", ReplaceWith:=Cells(4, 5), Replace:=2
    .Execute FindText:="#штраф4", ReplaceWith:=Cells(5, 6), Replace:=2
End With
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805284
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, поспешил
вы водит только первую строку
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805294
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) ты осознаешь, как работает for?
Код: vbnet
1.
2.
For li = 1 To 10
li =

Зачем ты перезаписываешь переменную цикла?

2)
Код: vbnet
1.
ReplaceWith:=Cells(2, 3),

Какой смысл в цикле вообще, если у тебя фиксированные столбец и строка?
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805306
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, F8 заходит в процедуру, только вот не пойму записывает только первую строку, наверное в цикле условия прописать надо?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim li
Dim i As Long
li = Sheets("shtraf").Range("A2:F10").Value
Stop
For i = 2 To 10

With Wd.Range.Find
    .Execute FindText:="#штраф1", ReplaceWith:=Cells(i, 3), Replace:=2
    .Execute FindText:="#штраф2", ReplaceWith:=Cells(i, 4), Replace:=2
    .Execute FindText:="#штраф3", ReplaceWith:=Cells(i, 5), Replace:=2
    .Execute FindText:="#штраф4", ReplaceWith:=Cells(i, 6), Replace:=2
End With

Next i
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805427
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asseiзаписывает только первую строкутак он один раз нашел и заменил все "#штраф*" на числа. В следующие разы он уже ничего не найдет и не заменит
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805452
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, нет с циклом у меня очень сложно!
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805458
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asseiShocker.Pro, нет с циклом у меня очень сложно!Сейчас выучим этот урок )
Тебе вообще зачем цикл? Чтобы найти нужную строку. Что ты сделал, чтобы убедиться в том, что строка нужная?
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805466
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, что бы сравнить каждую строку из столбца "А" со строками в столбцов С:F
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805471
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, пытался сравнить с текстовым поле 2, If TextBox2 = i Then
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Dim i

 i = Sheets("shtraf").Range("A2:F10").Value
Stop

For i = 1 To 10
    If TextBox2 = i Then
...
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805473
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asseiпыталсяи?
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805479
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, я понимаю, что после условия, что то надо добавить а, что не понимаю, пробую пройти F8 а смотрю, что в (i) попадают не суммы с листа а просто счетчик 1, 2, 3 ... 10 , получается что в (i) не попадают данные в с листа в (i)
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805498
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После условия ничего не надо добавлять. А вот внутри условия нужно и выполнить нужные действия (замена шаблонов на значения, ну и выход из цикла).


asseiчто в (i) попадают не суммы с листа а просто счетчик 1, 2, 3 ... 10ну так i - это и есть счетчик строк, все правильно

asseiполучается что в (i) не попадают данные в с листа в (i)не надо, чтобы данные с листа попадали в i - это счетчик, зачем его портить?

Как получить значение из ячейки ты же уже разобрался: Cells(i, 3)
В чем проблема получить значение ячейки Cells(i, 1), где лежит нужная сумма для условия
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805501
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, в Range("A2:F10").Value
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805505
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, в Cells(i, 1)
...
Рейтинг: 0 / 0
работа цикла с масивом
    #39805509
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значение лежит в первом столбце каждой конкретной строки
строки перебираются друг за другом
сосредоточься
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / работа цикла с масивом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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