Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос смещающий значение? / 4 сообщений из 4, страница 1 из 1
21.09.2007, 15:07
    #34818166
Салик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос смещающий значение?
Добрый день
Подскажите, пожалуйста, возможно ли придумать какой ни будь макрос, который бы перемещал значение в ячейке если в соседней колонке есть значение
Пример во вложенном файле
...
Рейтинг: 0 / 0
21.09.2007, 16:03
    #34818388
Адепт.NET
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос смещающий значение?
Мой вариант
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Sub Main()
    Dim MyRange As Range
    
    Set MyRange = ActiveWindow.RangeSelection
    Test MyRange
End Sub

Sub Test(MyRange As Range)
    Dim Cell1 As Range, Cell2 As Range, Cell3 As Range
    
    For Count =  1  To MyRange.Rows.Count
        Set Cell1 = MyRange.Cells(Count,  1 )
        Set Cell2 = MyRange.Cells(Count,  2 )
        ' если пустая ячейка в первом столбце
        If IsEmpty(Cell1.Value) Then GoTo Continue
        ' если не пустая ячейка во втором столбце
        If Not IsEmpty(Cell2.Value) Then GoTo Continue
        
        For Count2 = Count +  1  To MyRange.Rows.Count
            Set Cell3 = MyRange.Cells(Count2,  2 )
            If Not IsEmpty(Cell3.Value) Then
                Cell2.Value = Cell3.Value
                Cell3.Value = Empty
                Exit For
            End If
        Next
Continue:
    Next
End Sub
...
Рейтинг: 0 / 0
21.09.2007, 16:06
    #34818402
Адепт.NET
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос смещающий значение?
Мой вариант
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Sub Main()
    Dim MyRange As Range
    
    Set MyRange = ActiveWindow.RangeSelection
    Test MyRange
End Sub

Sub Test(MyRange As Range)
    Dim Cell1 As Range, Cell2 As Range, Cell3 As Range
    
    For Count =  1  To MyRange.Rows.Count
        Set Cell1 = MyRange.Cells(Count,  1 )
        Set Cell2 = MyRange.Cells(Count,  2 )
        ' если пустая ячейка в первом столбце
        If IsEmpty(Cell1.Value) Then GoTo Continue
        ' если не пустая ячейка во втором столбце
        If Not IsEmpty(Cell2.Value) Then GoTo Continue
        
        For Count2 = Count +  1  To MyRange.Rows.Count
            Set Cell3 = MyRange.Cells(Count2,  2 )
            If Not IsEmpty(Cell3.Value) Then
                Cell2.Value = Cell3.Value
                Cell3.Value = Empty
                Exit For
            End If
        Next
Continue:
    Next
End Sub
...
Рейтинг: 0 / 0
25.09.2007, 10:20
    #34823364
Салик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос смещающий значение?
Спасибо большое, действительно все работает
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос смещающий значение? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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