Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> макрос через delphi 
:(
    Опции темы
bushkurta
Дата 22.5.2013, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.5.2013

Репутация: нет
Всего: нет



помогите исправить код макроса.
подключил макрос (поиск дубликатов в таблице excel) к делфи  поиск дублей идет.но неправельно. удаляет все строки. сначала одинаковые, при повторном включении удаляет все попорядку хотя там нет повторений).

код макроса
Код

Sub q()
 Dim iListCount As Integer
Dim iCtr As Integer

' Для ускорения работы макроса обновление экрана отключается.
Application.ScreenUpdating = False

' Получение числа записей для поиска.
iListCount = Sheets("Sheet1").Range("A1:J100").Rows.Count
Sheets("Sheet1").Range("A1:J100").Select
' Цикл по всем записям до последней.
Do Until ActiveCell = ""
   ' Цикл по записям.
   For iCtr = 1 To iListCount
      If ActiveCell.Row <> Sheets("Sheet1").Cells(iCtr, 1).Row Then
         ' Сравнение следующей записи.
         If ActiveCell.Value = Sheets("Sheet1").Cells(iCtr, 1).Value Then
            ' Если совпало, удалить строку.
            Sheets("Sheet1").Cells(iCtr, 1).Delete xlShiftUp
               ' Увеличение счетчика строк на 1 для учета удаленной строки.
               iCtr = iCtr + 1
         End If
      End If
   Next iCtr
   ' Переход к следующей записи.
   ActiveCell.Offset(1, 0).Select
Loop
Application.ScreenUpdating = True
MsgBox "Готово!"
End Sub



M
Poseidon
При вставке фрагмента кода используйте копку "Код"



Это сообщение отредактировал(а) Poseidon - 22.5.2013, 16:14
PM MAIL   Вверх
Beltar
Дата 22.5.2013, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 0
Всего: 7



Так это на форум по VBA по идее, или ты его на Паскаль переписал?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
kami
Дата 22.5.2013, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Beltar, думаю, что вызов макроса идет через метод XlsApplication.Run.
bushkurta, на форуме VBA это сделали бы красивее, но можно, например, так:

Код

Set myRange = Worksheets("Ëèñò1").Cells(1, 1).CurrentRegion

For i = 1 To myRange.Rows.Count - 1
  Set CurrentCell = myRange.Cells(i, 1)
  For j = myRange.Rows.Count To i + 1 Step -1
    If CurrentCell.Value = myRange.Cells(j, 1).Value Then
      myRange.Rows(j).Delete
    End If
  Next j
Next i


Это сообщение отредактировал(а) kami - 22.5.2013, 22:31
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0661 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.