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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.10.2008, 08:25   #1
niqx
 
Регистрация: 07.10.2008
Сообщений: 9
По умолчанию Цикл по столбцам

Ребят, не кидайте плиз помидорами, поиском не нашел (наверное, просто вопрос настолько тупой, что его никто не спрашивает)

Как задать цикл по столбцам листа, чтобы он просматривал, например все ячейки строки из диапазона M-7 до BZ-7? Ругается если я использую строковую переменную for j = "M" to "BZ", да и вообще, все что знаю (а знаю, как вы поняли, я немного) перепробовал...

Заранее спасибо!
niqx вне форума
Старый 07.10.2008, 08:37   #2
КаМММ
Почти "Чайник"
Форумчанин
 
Аватар для КаМММ
 
Регистрация: 09.06.2008
Сообщений: 134
По умолчанию

Тоесть тебе нужны столбцы с 13 по 78
For i = 13 To 78
Cells(7, i).Value .........
Next i
КаМММ вне форума
Старый 07.10.2008, 09:17   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А если хочется, чтобы в коде макроса было нагляднее, то можно так:
Код:
For i = [M7].Column To [BZ7].Column
        Cells(7, i) = ...
    Next
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 07.10.2008, 10:10   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

и я свои пять копеек добавлю...
а можно и так (особенно удобно когда не одна строка/столбец):
Код:
Dim iCells As Range

For Each iCells In Range("M7:BZ7")
   ... что то делаем с iCells
Next iCells
Serge_Bliznykov вне форума
Старый 07.10.2008, 10:48   #5
КаМММ
Почти "Чайник"
Форумчанин
 
Аватар для КаМММ
 
Регистрация: 09.06.2008
Сообщений: 134
По умолчанию

В общем яйцо можно разбить многими способами.
Где-то видел 100!!! способов записи обращения к ячейке.
VBA - Великий и могучий - почти как русский!
а вот и ссылочкаhttp://msoffice.nm.ru/faq/macros/range.htm#faq14

Последний раз редактировалось КаМММ; 07.10.2008 в 14:11. Причина: Ссылочку нашёл
КаМММ вне форума
Старый 07.10.2008, 11:54   #6
niqx
 
Регистрация: 07.10.2008
Сообщений: 9
По умолчанию

Огромное вам спасибо. Я это для девушки одной делаю, надеюсь, сегодня мне воздастся
niqx вне форума
Старый 07.10.2008, 12:07   #7
niqx
 
Регистрация: 07.10.2008
Сообщений: 9
По умолчанию

Хм... Я до этого использовал Range(i & j).Value = ... Там сначала идет буква столбца в строковом формате, потом номер строки, я правильно понимаю? А в cell(i, j) - сначала номер строки, потом номер столбца?

В общем, он мне опять ошибку выдает в такой строке:

For list = 1 To 100 'листы первого документа
For i = 9 To 100 'строки первого документа
For j = 13 To 78 'столбцы второго документа

If Book.Worksheets(list).Cell(i, 3).Value = ThisWorkbook.Worksheets("Результат" ).Cell(3, j).Value Then ...

Пишет - Object doesnt support this property or method

Book - это другая книга, открытая пользователем... Не суть важно...

Последний раз редактировалось niqx; 07.10.2008 в 12:18.
niqx вне форума
Старый 07.10.2008, 15:03   #8
КаМММ
Почти "Чайник"
Форумчанин
 
Аватар для КаМММ
 
Регистрация: 09.06.2008
Сообщений: 134
По умолчанию

попробуйте для начала присвоить сторковым переменным значения ячеек,
а затем сравнить переменные
КаМММ вне форума
Старый 07.10.2008, 15:54   #9
niqx
 
Регистрация: 07.10.2008
Сообщений: 9
По умолчанию

For list = 1 To 100

For i = 9 To 100
For j = 13 To 78

oT = Book.Worksheets(list).Cell(i, 3).Value
nT = ThisWorkbook.Worksheets("Результат" ).Cell(3, j).Value
If oT = nT Then ...

Такую же ошибку пишет... Переменные строковые
niqx вне форума
Старый 07.10.2008, 22:37   #10
КаМММ
Почти "Чайник"
Форумчанин
 
Аватар для КаМММ
 
Регистрация: 09.06.2008
Сообщений: 134
По умолчанию

А можно весь файлик (лучше оба)
С макросом и целью преобразований
А то я что-то не могу понять причины ошибки.
КаМММ вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка по 2-м столбцам по модулю... xamillion Microsoft Office Excel 2 06.10.2008 20:18
двумерный массив, нати макс.сумму по столбцам mau6 Помощь студентам 5 04.06.2008 21:14
Вывод результата по столбцам Mary_star SQL, базы данных 4 03.03.2008 13:15
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34