Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2009, 09:53   #1
Aqil_f
Форумчанин
 
Регистрация: 12.05.2009
Сообщений: 273
По умолчанию цикл

Как для этого процеса цикл можно создовать?

Код:

Worksheets("LIST1").Range("c14:h14").Copy
Worksheets("LIST2").Range("C4").PasteSpecial , , , True
Я делаю так:
Код:
 Private Sub CommandButton1_Click()
    Dim byteI As Byte, intY As Integer, douK As Double
    Sheets("LIST2").Select
    douK = 0
    For byteI = 14 To 25
    intY = Abs(Sheets("LIST1").Range("C" & byteI))

   Worksheets("LIST1").Range("C" & byteI:"H" & byteI).Copy
   Worksheets("LIST2").Range("C4").PasteSpecial , , , True

    Next byteI
 End Sub
Понимаю что, что-то не так, но, незнаю что.
Помогите пожалуйста как можн создовать такой цикл.
Aqil_f вне форума Ответить с цитированием
Старый 10.06.2009, 10:10   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Без примера файла сложно понять, чего Вы пытаетесь добиться этим циклом.

Попробуйте такие варианты:

Код:
Private Sub CommandButton1_Click()
    For i = 14 To 25
        intY = Abs(Sheets("LIST1").Range("C" & i))    ' не знаю, для чего эта строка
        Worksheets("LIST1").Range("C" & i & ":H" & i).Copy
        Worksheets("LIST2").Range("C" & i).PasteSpecial , , , True
    Next i
End Sub

Private Sub CommandButton1_Click()
    For i = 14 To 25
        intY = Abs(Sheets("LIST1").Range("C" & i))    ' не знаю, для чего эта строка
        Worksheets("LIST1").Cells(i, 3).Resize(1, 6).Copy
        Worksheets("LIST2").Cells(4, i - 10).PasteSpecial , , , True
    Next i
End Sub

Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False    ' отключаем обновление экрана
    For i = 14 To 25
        For j = 1 To 6
            intY = Abs(Sheets("LIST1").Range("C" & i))    ' не знаю, для чего эта строка
            Worksheets("LIST1").Cells(i, j + 2).Copy Worksheets("LIST2").Cells(j, i - 10)
        Next j
    Next i
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 10.06.2009, 15:40   #3
Aqil_f
Форумчанин
 
Регистрация: 12.05.2009
Сообщений: 273
По умолчанию

Вот использую этот макрос:
Код:
Sub makros()
Dim byteI As Byte, intY As Integer, douK As Double
Sheets("LIST2").Select
douK = 0
For byteI = 14 To 25
    Worksheets("LIST1").Range("C" & byteI & ":H" & byteI).Copy
    Worksheets("LIST2").Range("C4").PasteSpecial , , , True
 Next byteI
End Sub
Сейчас мне надо в цикле для каждого строка вычислить F и J.
Для F:
=D4-(ВПР(D4;List3!$A$2:$C$32;3;1))*(E4-20)
Для J:
=ЕСЛИ(C4=0;0;ИНДЕКС(List4!$A$1:$K$1 300;ПОИСКПОЗ(LIST2!$C4;List4!$A$1:$ A$1300;0);ПОИСКПОЗ(LIST2!$B4;List4! $A$1:$K$1;0)))

Если эти выражение использувать в Excel в ячейках как функция все нормально работает, но эти выражение используват в макрос не получается
Вложения
Тип файла: rar X2.rar (88.1 Кб, 4 просмотров)
Aqil_f вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
i,j и цикл Juffin Свободное общение 13 29.04.2009 14:36
Цикл do while S@muel Общие вопросы C/C++ 1 29.03.2009 23:01
Цикл... Лёка PHP 5 03.02.2008 21:38
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34