powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / findnext(второй по счету?)
50 сообщений из 50, показаны все 2 страниц
findnext(второй по счету?)
    #37222993
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в каждом листе(всего их 4) в первой ячейке стойт число "1" в след(нижний) ячейке "2" и т.д ... до 20, но среди них встречается еще одна "2". Нужно ее "переставить"(в соседний столбец) из списка.

как написать используя sheets(i) и findnext




help(из excel.xls) хорошо прочитал, но трудно через неё составить свой код и там не указан "второй по счету findnext"

если решу, напишу...

заранее спасибо
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37223446
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85там не указан "второй по счету findnext"
если запустить два раза - будет второй по счету.

а вообще - давай конкретику, что не получается, а то писать за тебя всю программу, как видно, ни у кого желание не возникло.
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37223820
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro="если запустить два раза - будет второй по счету"

нужно именно без "запустить два раза "

то что есть:
Worksheets(i).Range("a1:a10").FindNext(2, LookIn:=xlValues). ' must be findnext(2-ой по счету)
Set x = found.Row 'must be ~ foundnext.adress
Set y = found.Column 'must be ~ foundnext.column

Cells(x, y).Cut
Cells(B1).Paste
_______________
правильные(работающие) коды:
Range("a1:a10").Find("2", LookIn:=xlFormulas).Activate
Cells.FindNext(After:=ActiveCell).Activate
__
comment: при "бегущем" Worksheets(i) наш activate не уместен
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37223870
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85нужно именно без "запустить два раза "это что, такое условие задачи? Почему нельзя?

justice85правильные(работающие) коды:
Range("a1:a10").Find("2", LookIn:=xlFormulas).Activate
Cells.FindNext(After:=ActiveCell).Activate
__
comment: при "бегущем" Worksheets(i) наш activate не уместен
Ну правильно - так правильно. Просто не надо использовать Activate
Код: plaintext
1.
2.
3.
Dim found As Range
Set found = Worksheets( 1 ).Range("a1:a10").Find("2", LookIn:=xlFormulas)
Set found = Worksheets( 1 ).Cells.FindNext(After:=found)
found.Interior.ColorIndex =  3 
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37223962
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за After:=found "Shocker.Pro

как теперь понимать то что он находит т.е. как понимать found (англ.перевод знаю)
как скорректировать?:
found.cut
found.Paste Destination:=Worksheets(i).Range("B1")

еррор: object required
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37223969
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85Спасибо за After:=found "Shocker.Pro

как теперь понимать то что он находит т.е. как понимать found (англ.перевод знаю)
как скорректировать?:
found.cut
found.Paste Destination:=Worksheets(i).Range("B1")

еррор: object required

Может следовало бы сначала изучить основы программирования и языка?
found - это переменная, которую я сам и объявил. Я мог назвать ее "хрен" - это не меняет сути дела.
Тип этой переменной диапазон ячеек. В данном случае - найденный.

Copy/Paste не стоит использовать для таких целей - зачем буфер обмена забивать?

Код: plaintext
Worksheets(i).Range("B1")=found
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37224367
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по поводу found, вообще хотел написать: "как глубже понять объект found, что можно с ней "натворить" "(ну ладно, я сам ее точнее изучу)

мне таки нужно узнать при, скажем, findnext(четвертый по счету) то будет так?:

Set found = Worksheets(i).Range("a1:a10").Find("2", LookIn:=xlFormulas)
Set found = Worksheets(i).Cells.FindNext(After:=found)
Set found = Worksheets(i).Cells.FindNext(After:=found)
Set found = Worksheets(i).Cells.FindNext(After:=found)
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37224412
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85по поводу found, вообще хотел написать: "как глубже понять объект found, что можно с ней "натворить" "(ну ладно, я сам ее точнее изучу)

еще раз - found - это произвольное название переменной.
Изучать надо Range - это основной объект при работе с экселем. Он представляет собой диапазон ячеек (в частном случае - одну ячейку).
В данном случае ссылку на ячейку возвращает метод Find[Next] - то есть после выполнения Find[Next] в переменной оказывается ссылка на найденную ячейку.

justice85мне таки нужно узнать при, скажем, findnext(четвертый по счету) то будет так?:

Set found = Worksheets(i).Range("a1:a10").Find("2", LookIn:=xlFormulas)
Set found = Worksheets(i).Cells.FindNext(After:=found)
Set found = Worksheets(i).Cells.FindNext(After:=found)
Set found = Worksheets(i).Cells.FindNext(After:=found)
да, в простом случае
можно использовать всякие изощрения, но в данном случае в них нет смысла
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37224501
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sub SP()
Dim found As Range
Set found = Worksheets(1).Range("a1:a10").Find("2", LookIn:=xlFormulas)
Set found = Worksheets(1).Cells.FindNext(After:=found)
Worksheets(1).Range("B1") = found
End Sub


F5
run-time error 5
invalid procedure call or argument


причем если этот же 4-х строчный код запустить в новом 1.xls файле, то действительно переставляет в B1 вторую двойку
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37224551
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85Sub SP()
Dim found As Range
Set found = Worksheets(1).Range("a1:a10").Find("2", LookIn:=xlFormulas)
Set found = Worksheets(1).Cells.FindNext(After:=found)
Worksheets(1).Range("B1") = found
End Sub

А не пора ли уже прочитать правила форума и наконец начать оформлять правильно код (ну хотя бы посмотреть, как я это делаю)

justice85F5
run-time error 5
invalid procedure call or argument
причем если этот же 4-х строчный код запустить в новом 1.xls файле, то действительно переставляет в B1 вторую двойку
Стало быть код правильный.
при F5 курсор должен стоять внутри процедуры
ну или выложи файл, в котором не работает.
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37224590
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
src
файл
src
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37224663
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это.
В твоем файле двойки нет вообще.
Первый поиск ее не находит.
Соответственно, на втором поиске возникает ошибка, так как found=Nothing в этот момент.
Если предполагаются такие ситуации, естественно, нужно вводить проверки после поисков, а нашлось ли чего либо.
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37224738
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верно. на счет "after:=found" в хелпе то же есть, просто там выражение "Set c = .FindNext(c)" казалось как бесконечный цикл.

Ну все вроде:

Dim found As Range
For i = 1 To 3
With i
Set found = Worksheets(i).Range("a1:a10").Find("2", LookIn:=xlFormulas)
Set found = Worksheets(i).Cells.FindNext(After:=found)
Set found = Worksheets(i).Cells.FindNext(After:=found)
Set found = Worksheets(i).Cells.FindNext(After:=found)
Worksheets(i).Range("B1") = found
End With
Next i


thanks
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37224768
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85Ну все вроде:
Ну не все. Код так и не научился правильно оформлять, неужели так сложно нажать кнопку "цитировать"?

justice85
Код: plaintext
With i

Оригинальный ход.
А для чего это, поделись опытом ))
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37224892
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторtop encryption secret
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37225441
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
Ну правильно - так правильно. Просто не надо использовать Activate
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Function FoundSecond(WhatFound As String) as Long
Dim found As Range
Set found = Worksheets( 1 ).Range("a1:a10").Find(WhatFound, LookIn:=xlFormulas)
If found Is Nothing Then
  FoundSecond =  0 
  Exit Function ' emergency exit
End If
Set found = Worksheets( 1 ).Cells.FindNext(After:=found)
FoundSecond = found.Row
End Function
Worksheets(1)A1122334455667788991010

Код: plaintext
1.
?FoundSecond( 2 )
  2  
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37226431
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В самом первом посту я хотел автор"переставить"(в соседний столбец)

ShockerPro решил "коротко"авторWorksheets(i).Range("B1")=found

Я еще дополнил свою прогу:
авторWorksheets(i).Cells(a, b).Cut
Worksheets(i).Range("B1").Select
ActiveSheet.Paste

т.к. мне в действительности нужно через параметры a,b где(a = found.Row, b = found.Column)

еще один вопрос:как поставить на "B1" при "бегущем" Worksheets(i) ?
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37226442
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85авторWorksheets(i).Cells(a, b).Cut
Worksheets(i).Range("B1").Select
ActiveSheet.Paste

т.к. мне в действительности нужно через параметры a,b где(a = found.Row, b = found.Column)

ну и кто мешает?
Код: plaintext
Worksheets(i).Range("B1")=Worksheets(i).Cells(a, b)

justice85еще один вопрос:как поставить на "B1" при "бегущем" Worksheets(i) ?
что поставить?
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37226588
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37226716
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаShocker.Pro,
загляни под крышечку спойлер
заглядывал, это не прояснило мне суть вопроса автора.
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37226793
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
а суть своего ответа прояснило?
поиск отработат неправильно
-если искомое значение встречается в диапазоне один раз;
-если искомое значение встречается более одного раза и одно из вхождений - первая ячейка диапазона.
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37226912
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты меня вообще запутал.
Я оставил на совести автора доделки, дав ему только удочку (ибо я - не Скукотища)
Ты ему сделал нормальную законченную функцию, которая возвращает Row.

Но что ТЫ хотел сказать МНЕ я не понял.
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37226917
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proсложно нажать кнопку "цитировать"?
почему после цитирования не большой как бы абзац. место много "берет".
Shocker.ProWorksheets(i).Range("B1")=Worksheets(i).Cells(a, b)

сначала показалось как трамвай запихнули в автобус.
вообще то там наверно так должно быть: Range("B1").value = Cells(a, b).value
лично "объект" Range, я так понимал
скукотищазагляни под спойлер
проверил. код после F5 ничего не изменил со списком(визуально (или как там?))
что делать с whatfound?

вызываю ФУНКЦИЮ так: call FoundSecond((WhatFound))
или по другому лучше?

WhatFound=2 ?
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37226932
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо Shocker.Pro
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37226948
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProТы ему сделал нормальную законченную функцию, которая возвращает RowФункция не нормальная. Тот топик был исключительно для тебя.
Shocker.ProНо что ТЫ хотел сказать МНЕ я не понял.Хотел сказать, что с .Find не всё так просто, как кажется.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
' Простой код, который "должен" найти строку последнего вхождения двойки в заданном диапазоне, сваливается в бесконечный цикл
Dim r As Range,f As Range, mRow&

Worksheets( 1 ).Cells( 1 , 1 ) =  1 
Worksheets( 1 ).Cells( 2 , 1 ) =  2 
Worksheets( 1 ).Cells( 3 , 1 ) =  3 
Set r = Worksheets( 1 ).Range("A1:A3")

Set f = r.Find( 2 , ,xlValues, xlWhole)
Do Until f Is Nothing
  mRow = f.Row
  Set f = r.FindNext(f)
Loop
Debug.Print mRow
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37226997
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
justice85,
вызываю ФУНКЦИЮ так: call FoundSecond((WhatFound))
или по другому лучше?
Лучше ею не пользоваться. Т.к. в некоторых случаях она возвращает не то, что ожидаешь.
Вызов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim b As Long

' ищем строку "2"
b = FoundSecond("2")

If b =  0  Then
' не нашли 
   ' ... действия в случае неудачного поиска
Else
' нашли
   ' ... действия в случае удачного поиска
End If
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37227201
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85Shocker.Proсложно нажать кнопку "цитировать"?
почему после цитирования не большой как бы абзац. место много "берет".
Я просил нажать "цитировать", чтобы ты посмотрел наконец и научился оформлять код на форуме.
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37227210
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаПростой код, который "должен" найти строку последнего вхождения двойки в заданном диапазоне, сваливается в бесконечный цикл
а, ну я кому-то здесь решал уже такую задачку. просто проверял условие CurrentRow<PreviousRow
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37228080
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1,2,... до A13=13

при a=12, b=1 авторWorksheets(i).Range("B1")=Worksheets(i).Cells(a, b)

b1- пустая, до F5.
после F5 равна 12 и A12=12

но при
авторSet found = Worksheets(i).Range("a1:a10").Find("2", LookIn:=xlFormulas)
Set found = Worksheets(i).Cells.FindNext(After:=found)
a = found.Row'=12
b = found.Column'=1
Worksheets(i).Range(Cells(1, 1), Cells(a, b)) = Worksheets(i).Range(Cells(1, 2), Cells(12, 2))

F5 -> A1:A12 опустошается из за [B1:B12] = nothing
и вижу только 13

почему в первом коде (этого поста) A12 не опустошается?
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37228101
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85почему в первом коде (этого поста) A12 не опустошается?
1)
Worksheets(i).Range("B1")=
2)
Worksheets(i).Range(Cells(1, 1), Cells(a, b)) =

разницу видищь?
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37228448
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вижу.Имею ввиду:
Ячейки прировнять можно "B1 = Cell(a, b)". 'в итоге после F5, Cell(a, b) - не пустеет
А вот насчет диапазона "Cells(1, 2), Cells(12, 2) = Cells(1, 1), Cells(a, b)". 'F5, Cells(1, 1), Cells(a, b) - пустеет
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37228472
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не верю.
либо там еще формулы, либо еще код, либо что-то еще
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37228662
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlНикогда не делай Cells() или Range(), всегда делай somesheet.Cells() или somesheet.Range()

где somesheet.Cells() - "на первый взгляд" для ячейки
как написать его же для ячеек?

Код:
авторDim found As Range
For i = 1 To 1
Set found = Worksheets(i).Range("a1:a10").Find("2", LookIn:=xlFormulas)
Set found = Worksheets(i).Cells.FindNext(After:=found)
a = found.Row: b = found.Column
Worksheets(i).Range(Cells(1, 1), Cells(a, b)) = Worksheets(i).Range(Cells(1, 2), Cells(12, 2))
'Worksheets(i).Range("B1")=Worksheets(i).Cells(a, b)
Next i
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37228999
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85для ячейки
как написать его же для ячеек?
Код: plaintext
Worksheets(i).Range(Cells( 1 ,  1 ), Cells(a, b))
пример из твоего же кода
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37229057
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот именно: после F5 кода:
Dim found As Range
For i = 1 To 1
Set found = Worksheets(i).Range("a1:a10").Find("2", LookIn:=xlFormulas)
Set found = Worksheets(i).Cells.FindNext(After:=found)
a = found.Row: b = found.Column
Worksheets(i).Range(Cells(1, 1), Cells(a, b)) = Worksheets(i).Range(Cells(1, 2), Cells(12, 2))
'Worksheets(i).Range("B1")=Worksheets(i).Cells(a, b)
Next i

Cells(1, 1), Cells(a, b) - пустеет т.е. на екселе ячейки А1:А12 - пустеют.
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37229072
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85Cells(1, 1), Cells(a, b) - пустеет т.е. на екселе ячейки А1:А12 - пустеют.
ну правильно, ты же копируешь в них содержимое ячеек B1:B12 - а в тех пусто. Чего ты ожидал?
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37229082
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И заметь - до этого ты привел другой код:
justice85А вот насчет диапазона "Cells(1, 2), Cells(12, 2) = Cells(1, 1), Cells(a, b)". 'F5, Cells(1, 1), Cells(a, b) - пустеет
вот на него я сказал - не верю. А с последним - все так и должно быть
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37230637
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro до этого ты привел другой код
да


авторпри
Worksheets(i).Range(Cells(1, 2), Cells(12, 2)) = Worksheets(i).Range(Cells(1, 1), Cells(a, b))
и при
Worksheets(i).Cells(a, b) = Worksheets(i).Range("B1")


одинаковые проблемы invalid procedure call or arg-nt



но мне интересно почему B1 не опустошает А12?
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37231118
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85но мне интересно почему B1 не опустошает А12?

блин
Код: plaintext
1.
2.
3.
4.
5.
Dim a As Integer, b As Integer
a =  5 
b =  7 

a = b
Как по твоему, чему будет равна переменная b после выполнения этого кода?
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37231319
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКак по твоему, чему будет равна переменная b после выполнения этого кода?
b=7
строка Worksheets(i).Range("B1")=Worksheets(i).Cells(a, b)
"по сути" равна
***Worksheets(i).Range(Cells(1, 2), Cells(1, 2)) = Worksheets(i).Range(Cells(a, b), Cells(a, b))
строка *** тоже работает, но
авторWorksheets(i).Range(Cells(1, 2), Cells(12, 2)) = Worksheets(i).Range(Cells(1, 1), Cells(a, b))
НЕ работает.
для диапазона ячеек - помогите
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37231366
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85авторКак по твоему, чему будет равна переменная b после выполнения этого кода?
b=7
ну то есть никакого "опустошения" b не происходит. Почему же должен "опустошаться" диапазон?

авторWorksheets(i).Range(Cells(1, 2), Cells(12, 2)) = Worksheets(i).Range(Cells(1, 1), Cells(a, b))
НЕ работает.
для диапазона ячеек - помогите
1) подставь вместо a, b конкретные значения
2) напиши уже, наконец, что именно не работает в этой строке (никакого "опустошения" диапазона из правой части происходить не должно)
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37231408
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
****Dim found As Range
For i = 1 To 1
Set found = Worksheets(i).Range("a1:a10").Find("2", LookIn:=xlFormulas)
Set found = Worksheets(i).Cells.FindNext(After:=found)
a = 12: b = 1
Worksheets(i).Range(Cells(1, 2), Cells(12, 2)) = Worksheets(i).Range(Cells(1, 1), Cells(a, b))
Next i

до Ф5 второй стобец пуст
после Ф5 должно быть: В1=1, В2=2, ... , В12=12

но код **** ничего не вставляет/меняет/работает
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37231445
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85,

10548425
Код: plaintext
Worksheets(i).Range(Cells( 1 ,  2 ), Cells( 12 ,  2 )).Value = Worksheets(i).Range(Cells( 1 ,  1 ), Cells(a, b)).Value
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37231483
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С 22 апр. [10551516] из-за всешо лишь слова value

(когда сам "страдал" этим правописанием). хм-хм блин.
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37231930
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37234282
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub first_1_3()

Dim a( 3 ), b( 3 )        
For i =  1  To  3 
        With Worksheets(i)
        Set found = .Range("a1:a10").Find("2", LookIn:=xlFormulas)'***
                a = found2.Row:        b = found2.Column
        
        .Range("B1:B2").Value = .Range(.Cells( 1 ,  1 ), .Cells(a(i), b(i))).Value
        
        End With
        Next i
End Sub


если после строки *** поставить строку
Код: plaintext
Set found2 = .Cells.FindNext(After:=found)

то код first_1_3 не работает
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37234463
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
justice85код first_1_3 не работает

Надо угадать, что не работает?
файл выкладывай.
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37234672
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
justice85если после строки *** поставить строку...
Можно подумать, что если не поставить, то работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub first_1_3()

Dim a( 3 ), b( 3 )        
For i =  1  To  3 
        With Worksheets(i)
        Set found = .Range("a1:a10").Find("2", LookIn:=xlFormulas)'***
                a = found2.Row:        b = found2.Column
        
        .Range("B1:B2").Value = .Range(.Cells( 1 ,  1 ), .Cells(a(i), b(i))).Value
        
        End With
        Next i
End Sub
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37234925
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаМожно подумать, что если не поставить, то работает
а ведь я давал автору ссылку
...
Рейтинг: 0 / 0
findnext(второй по счету?)
    #37236289
justice85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
a = found2.Row
то что должно быть
Код: plaintext
a(i) = found2.Row
это достаточно очевидно

просто пока я в форуме спеша редактировал. а так у меня в коде было
Код: plaintext
a(i) = found2.Row

я уже сам решил вопрос с (10569678])
и этот код и без option explicit корректно работает.
...
Рейтинг: 0 / 0
50 сообщений из 50, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / findnext(второй по счету?)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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