Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / макрос / 23 сообщений из 23, страница 1 из 1
12.03.2004, 11:07
    #32439373
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
Помогите пожалуйста!!!!
Извинете может не совсем по теме.
Может кто писал раньше макросы к MS Excel.
У меня есть отчет он заполняется с БД через разные компоненты, проблема в том что мне надо его отредактировать, но невручную а автоматически макросом.

ДО

пользователь ПО
-----------------------------------------
Вася Пупкин 1С Предприятие
Толя Губкин Офис
Толя Губкин 1С Предприятие
Ира Попкина интернет
Ира Попкина порно ресурс
Ира Попкина квака

ПОСЛЕ

пользователь ПО
-----------------------------------------
Вася Пупкин 1С Предприятие
Толя Губкин Офис
1С Предприятие
Ира Попкина интернет
порно ресурс
квака

короче как сделать макрос удаляющий повторы имен этих пользователей если они повторяются в первой колонке
...
Рейтинг: 0 / 0
12.03.2004, 11:17
    #32439413
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
Выделяешь 1 колонку,

Код: plaintext
    Columns( "A:A" ).Select


перебираешь последовательно ячейку за ячейкой.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim item
dim state
state= ""
For Each item In Selection
    if state=item.value then
        item.value=" "
    else
        state=item.value
    end if
Next
...
Рейтинг: 0 / 0
12.03.2004, 11:31
    #32439464
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
а можно поподробнее я просто не разу не писал эти самые макросы, мне трудно сореентироваться
...
Рейтинг: 0 / 0
12.03.2004, 11:46
    #32439500
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
Поподробнее об этом написано в документации к Excel, и на русском.

По умолчанию эта документация не ставится, может придется установить

Создай макрос через запись, а потом загляни в редактор Visual Basic.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
sub ЧисткаПовторов
Dim item
dim state
Columns( "A:A" ).Select
state= ""
For Each item In Selection
    if state=item.value then
        item.value=" "
    else
        state=item.value
    end if
Next
end sub


Куда уж подробнее
...
Рейтинг: 0 / 0
12.03.2004, 11:59
    #32439556
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
спасибо, кажись разобрался
...
Рейтинг: 0 / 0
12.03.2004, 12:13
    #32439621
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
а почему оно мне выдает хрень при инсталяции в виде желтой полосы на
If state = item.Value Then
...
Рейтинг: 0 / 0
12.03.2004, 15:19
    #32440194
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
ну ни в какую нехочет он работать может там ошибка, может есть у кого рабочий пример
...
Рейтинг: 0 / 0
12.03.2004, 16:05
    #32440309
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
У меня все работает.
...
Рейтинг: 0 / 0
12.03.2004, 16:18
    #32440332
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
а у меня ругается
Can't Execute code in break mode
...
Рейтинг: 0 / 0
13.03.2004, 23:07
    #32440990
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
Я писал макрос для Excel 2000 -2002,

Если у тебя 97, то может и не работать.
...
Рейтинг: 0 / 0
16.03.2004, 09:02
    #32442811
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
я попробывал это в ХР офисе тоже самое, неработает, может кто подскажет как это сделать подругому, очень надо.
Заранее благодарю
...
Рейтинг: 0 / 0
16.03.2004, 09:17
    #32442832
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
Как ругается? На каком месте?

Не понимаю.

Как ты делаешь?
...
Рейтинг: 0 / 0
16.03.2004, 09:31
    #32442847
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
я создал новый макрос

Dim item
dim state
Columns("B:B").Select
state=""
For Each item In Selection
if state=item.value then
item.value=""
else
state=item.value
end if
Next
end sub

при компиляции он выводит желтую линию на условии
а если я пытаюсь запустить его то говорит про несответсвие значения
...
Рейтинг: 0 / 0
16.03.2004, 09:45
    #32442857
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Public Sub asd()
Dim item As Range
Dim state As String
Columns( "B:B" ).Select
state =  ""
For Each item In Selection
If state = item.Value Then
item.Value = " "
Else
state = item.Value
End If
Next
End Sub

Не понимаю, скопировал себе, у меня работает.
...
Рейтинг: 0 / 0
16.03.2004, 10:05
    #32442889
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
а с какой строки у тебя идет перечисление у меня в переди еще заголовки или это не имеет значения?
...
Рейтинг: 0 / 0
16.03.2004, 10:15
    #32442900
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
??? Почему заголовок отрезал ???
Dim item 
dim state 
Columns( "B:B" ).Select 
state= "" 
For Each item In Selection 
if state=item.value then 
item.value=" " 
else 
state=item.value 
end if 
Next 
end sub 


И полностью покажи весь макрос
...
Рейтинг: 0 / 0
16.03.2004, 10:16
    #32442905
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
я его только что пытался запустить и его зациклило
...
Рейтинг: 0 / 0
16.03.2004, 10:19
    #32442914
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
Sub col()
Dim item As Range
Dim state As String
Columns("B:B").Select
state = ""
For Each item In Selection
If state = item.Value Then
item.Value = ""
Else
state = item.Value
End If
Next

End Sub
это полностью весь макрос
...
Рейтинг: 0 / 0
16.03.2004, 10:30
    #32442951
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
Его не циклит, он добегает до конца страницы и все. А это процесс долгий.
...
Рейтинг: 0 / 0
16.03.2004, 10:35
    #32442963
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
а как ему сказать чтоб цикл прекратился при первой пустой строке или ячейке или если мне известно максимальное количество заполненых ячеек
...
Рейтинг: 0 / 0
16.03.2004, 10:40
    #32442976
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Sub asd()
Dim item As Range
Dim state As String
Columns( "B:B" ).Select
state =  ""
For Each item In Selection
    If item.Value = "  " Then Exit For
    If state = item.Value Then
        item.Value = " "
    Else
        state = item.Value
    End If
Next
End Sub


Это что-бы он останавливался на первой пустой строке.
...
Рейтинг: 0 / 0
16.03.2004, 10:41
    #32442978
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
А если известно число заполненых ячеек, то можешь делать Exit For по счетчику
...
Рейтинг: 0 / 0
16.03.2004, 10:58
    #32443019
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
макрос
ладно спасибо большое за помощь, напряг я тебя изрядно.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / макрос / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]