Страницы: 1
RSS
Организация цикла в цикле
 
Подскажите пожалуйста как организовать цикл в цикле в макросе EXCEL или где можно посмотреть!
 
:-) Внутри первого цикла организуйте второй. Уточните свой вопрос.
 
Dim K, I As Long  
   For K = 1 To 5  
   Workbooks.OpenText Filename:="D:\11\Дельта 12 х 2 м\16 m\" & Format(K, "00") & ".txt", Origin:=866, _  
       StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _  
       ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, Comma:=False, _  
       Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array( _  
       3, 1), Array(4, 1), Array(5, 1), Array(6, 1)), TrailingMinusNumbers:=True  
   Range("A2:E32761").Select  
   Selection.Copy  
   Windows("1.xlsm").Activate  
   Range("A1").Select  
   ActiveSheet.Paste  
   Windows(Format(K, "00") & ".txt").Activate  
   Application.CutCopyMode = False  
   ActiveWorkbook.Close  
For I = 0 To 359  
   Range("E" & (I + 1) + I * 90 & ":E" & I + I * 90).Select  
   Selection.Copy  
   Range("F" & 1 + I * 90).Select  
   ActiveSheet.Paste  
Next I  
Next K  
 
Не работает, подозреваю, что неправильно организовал цикл в цикле, в частости  
не знаю на счет Next. Раньше пользовался только последовательными циклами.
 
В общем случае должно выглядеть так:  
Sub Test()  
Dim i As Long, j As Long  
   For i = 1 To 100 ' Первый цикл  
       For j = 1 To 20 'Второй цикл  
           'Некие действия  
       Next 'Переход на следующую запись во втором цикле  
   Next 'Переход на следующую запись в первом цикле  
End Sub
 
В общем случае должно выглядеть так:  
Sub Test()  
Dim i As Long, j As Long  
For i = 1 To 100 ' Первый цикл  
For j = 1 To 20 'Второй цикл  
'Некие действия  
Next 'Переход на следующую запись во втором цикле  
For j = 1 To 20 'Третий цикл  
'Некие действия  
Next 'Переход на следующую запись во третьем цикле  
Next 'Переход на следующую запись в первом цикле  
End Sub  
 
У меня примерно так. Не воспринимает второй цикл, первую строчку после  
For I = 0 To 359  
   Range("E" & (I + 1) + I * 90 & ":E" & I + I * 90).Select  
выделяет цветом.
 
А Вы попробуйте объяснить что должно выполняться во втором цикле.
 
> For I = 0 To 359  
Range("E" & (I + 1) + I * 90 & ":E" & I + I * 90).Select  
 
При I=0 адрес получается "E1:E0", поэтому ошибка.
 
For I = 0 To 359  
Range("E" & (I + 1) + I * 90 & ":E" & I + I * 90).Select  
Selection.Copy  
Range("F" & 1 + I * 90).Select  
ActiveSheet.Paste  
Next I  
 
Упорядочиваю данные из столбца E в столбец F. Причем выбираю по определнному принципу из каждой десятки строк столбца Е, например, с первой по шестую и располагаю их в столбце F друг за другом. Отдельно этот кусок работает!
 
Странно, что у Вас этот отдельно взятый кусок работает. Перечитайте сообщение Казанского.  
P.S. Специалисты, что означает такая комбинация - 65978?
 
Да совершенно верно, закралась ошибка нулевого варианта. Циклы работают без проблем! Всем большое спасибо!
 
{quote}{login=mjpv}{date=10.08.2010 11:49}{thema=Организация цикла в цикле}{post}Подскажите пожалуйста как организовать цикл в цикле в макросе EXCEL или где можно посмотреть!{/post}{/quote}
 
Ни вопроса, ни имени... К чему это?
 
{quote}{login=Юрий М}{date=11.08.2010 12:25}{thema=}{post}Странно, что у Вас этот отдельно взятый кусок работает. Перечитайте сообщение Казанского.  
P.S. Специалисты, что означает такая комбинация - 65978?{/post}{/quote}  
 
 
Стрит (Straight)  
или  
Стрит флэш (Straight Flush)  
http://www.pokerlogic.ru/pokerhands.html
Спасибо
Страницы: 1
Читают тему
Наверх