Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Помогите со скриптом к Excel


Автор: Dedal 18.1.2006, 21:42
Дело в том, что надо обработать огромную таблицу. Проще всего было бы написать скрипт, но с VB я не знаком (хотя сейчас начал разбираться). Было бы просто замечательно, если бы кто-нибудь помог. Дело вот в чем. Допустим есть данные такой структуры (4 столбца):

Город1 Данные Данные Данные
Город2 Данные Данные Данные
Город2 Данные Данные Данные
Город3 Данные Данные Данные


Надо удалить из текущей книги строки с повторяющимися (именно подряд идущими) названиями городов и перенести их в другую книгу, чтобы в результате получилось:

Город1 Данные Данные Данные
Город3 Данные Данные Данные

для одной книги и

Город2 Данные Данные Данные
Город2 Данные Данные Данные

для второй книги.

Автор: cardinal 18.1.2006, 22:53
Перенесено из VB6.

Автор: Dedal 18.1.2006, 23:59
Справился сам. Хотя отродясь ничего не писал на VB. Секрет успеха:MSDN + хелп по VB для оффиса smile

Автор: Staruha 19.1.2006, 01:29
А у меня вот такой код удался.
Код

 Private Sub CommandButton2_Click()
Dim xd As String
Dim xxd As String
Dim L As Integer
L = 3000
For x = 1 To L
 xd = Cells(x, 1)
 For xx = x + 1 To L
  xxd = Cells(xx, 1)
 If x = L Then

Exit Sub
ElseIf xd = xxd Then
Rows(xx).Delete
  xx = xx - 1
L = L - 1
 End If
 Next
 xx = x + 1

Next
End Sub

Идет по столбцу A

Автор: Dedal 20.1.2006, 02:24
Staruha, у меня тоже все идет по столбцу А, но только записей там почти 50000 smile

Автор: Staruha 21.1.2006, 01:16
Ну дк поставь в коде L=50000 и смотри как кино.
Этот код хорош тем ,что сортировать не надо.

Автор: zarrr 17.11.2008, 15:26
А у меня вот такой код удался.
Выделить всёкод Visual Basic
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
    
 Private Sub CommandButton2_Click()
Dim xd As String
Dim xxd As String
Dim L As Integer
L = 3000
For x = 1 To L
 xd = Cells(x, 1)
 For xx = x + 1 To L
  xxd = Cells(xx, 1)
 If x = L Then
Exit Sub
ElseIf xd = xxd Then
Rows(xx).Delete
  xx = xx - 1
L = L - 1
 End If
 Next
 xx = x + 1
Next
End Sub

Идет по столбцу A

а как по столбцу И сделать то же самое????????? помогите?

Автор: cardinal 17.11.2008, 20:53
Модератор: Пожалуйста, один топик - один вопрос.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)