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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2012, 16:07   #1
ymnuhj
Пользователь
 
Регистрация: 26.03.2012
Сообщений: 42
По умолчанию Счетчик совпадающих ячеек в столбце

Помогите пожалуйста а то я всовсем запутался

На прикрепленном рисунке задача которую я пытаюсь решить.
Я сравниваю ячейку А2 с последующими ячейками данного столбца. Заполненных подряд ячеек здесь в нем может быть сколько угодно, поэтому я использую Do loop а не For Next. Так же значения столбце сгруппированы подряд и промежутки не повторяются. Поэтому я пытаюсь найти расстояние до промежутка с помощью счетчика i, и его длину с помощью счетчика j.

Справа от первого столбца я чтоб лучше разобраться сделал запись всех переменных на какждом шаге цикла.

Вот мой код:
Sub sd()

Dim a As String, b As String, iprev As Integer
Dim k As Integer, i As Integer, j As Integer


k = 3
i = -1
j = 0
a = ThisWorkbook.Sheets("Лист1").Cells( 2, 1).Value

Do
b = ThisWorkbook.Sheets("Лист1").Cells( k, 1).Value

If a <> b Then
i = i + 1
Else
j = j + 1
End If

k = k + 1

ThisWorkbook.Sheets("Лист1").Cells( k - 1, 2).Value = k
ThisWorkbook.Sheets("Лист1").Cells( k - 1, 3).Value = i
ThisWorkbook.Sheets("Лист1").Cells( k - 1, 4).Value = j
ThisWorkbook.Sheets("Лист1").Cells( k - 1, 5).Value = a
ThisWorkbook.Sheets("Лист1").Cells( k - 1, 6).Value = b
Loop While b <> ""



End Sub


Проблемы:
1) Счетчик J работает нормально, счетчик и нужно суметь остановить после первого совпадения.
2)Программа выполняет на один цикл больше чем я хочу(строка 9 - лишняя)

Заранее всем спасибо
Изображения
Тип файла: jpg вот.jpg (26.9 Кб, 72 просмотров)
Вложения
Тип файла: rar Лист Microsoft Excel.rar (5.9 Кб, 7 просмотров)
ymnuhj вне форума Ответить с цитированием
Старый 30.03.2012, 16:42   #2
ymnuhj
Пользователь
 
Регистрация: 26.03.2012
Сообщений: 42
По умолчанию

Еще сейчас до меня дошло, я забыл про то что со всем остальным еще нужно определить номер промежутка(к примеру as-первый промежуток, 2 - второй, фывв - третий)
ymnuhj вне форума Ответить с цитированием
Старый 30.03.2012, 17:47   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вот мой код:
Код:
Sub bb()
  Dim r As Long, ri As Long, N As Long
  r = 3: ri = 3: N = 0
  Do
    If Cells(r, 1) <> Cells(r - 1, 1) Then
      Cells(r, 2) = r - 2
      Cells(ri, 3) = r - ri
      ri = r: N = N + 1
    End If
    Cells(r, 4) = N
    r = r + 1
  Loop Until Cells(r, 1) = ""
  Cells(ri, 3) = r - ri: Cells(2, 3).ClearContents
End Sub
в В пишет расстояния от А2, в С - размер группы, в Д - номер группы.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.03.2012, 18:10   #4
ymnuhj
Пользователь
 
Регистрация: 26.03.2012
Сообщений: 42
По умолчанию

Удивительно. Интересно сколько мне еще предстоит учиться чтоб вложить столько функций в такой короткий код. Спасибо!!!!
ymnuhj вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение двух таблиц выделение совпадающих ячеек derlysh Microsoft Office Excel 22 14.03.2019 08:08
Количестов строк и Сумма ячеек в столбце VictorM Microsoft Office Excel 15 17.01.2011 14:11
Поиск ячеек в книге, совпадающих с ячейками в столбце А, листа1 данной книги TiG Microsoft Office Excel 1 10.12.2009 19:32
Выделение ячеек в опредленном столбце Busine2009 Microsoft Office Word 2 02.06.2009 21:33