Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [VBA+Excel] Вывод суммы выделеных строк


Автор: Rodman 17.8.2011, 13:20
Дароф

Мне надо сделать макрос, который можно было устанавливать на Excel

А этот макрос выдавал бы сумму всех выделенных ячеек на текущем листе?

Дайте пример или хотя бы направление куда двигаться...

Сенкс

Автор: 586 17.8.2011, 23:57
Цитата(Rodman @  17.8.2011,  14:20 Найти цитируемый пост)
Мне надо сделать макрос, который можно было устанавливать на Excel

А этот макрос выдавал бы сумму всех выделенных ячеек на текущем листе?

Код

Sub Button1_Click()
    MsgBox Application.WorksheetFunction.Sum(Selection)
End Sub


PS: В экселе же выводится сумма в статус баре.

Автор: Rodman 18.8.2011, 09:17
даже так...
а если просто вывести в msgbox все эти выбранные ячейки?

Автор: 586 18.8.2011, 20:44
Цитата(Rodman @  18.8.2011,  10:17 Найти цитируемый пост)
а если просто вывести в msgbox все эти выбранные ячейки?

через цикл

Автор: Rodman 18.8.2011, 22:04
1. как узнать самую нижнюю выбранную ячейку (ее номер)?
2. как проверять выбрана она или нет? 

Автор: 586 19.8.2011, 01:05
Цитата(Rodman @  18.8.2011,  23:04 Найти цитируемый пост)
1. как узнать самую нижнюю выбранную ячейку (ее номер)?
2. как проверять выбрана она или нет? 

Это для чего - чтобы вывести все выбранные ячейки?
Ячейки могут быть выделены по-разному: могут быть выделены одной областью, а могут быть выделены с удержанной клавишей CTRL - в этом случае будет несколько областей.
Код
Sub Button2_Click()   
    Dim s As String
    Dim r

    For a = 1 To Selection.Areas.Count
        Set r = Selection.Areas(a)
        s = s & "Area " & a & vbCrLf
        For j = 1 To r.Rows.Count
            For i = 1 To r.Columns.Count
                s = s & r.Item(j, i).Value
                If i <> r.Columns.Count Then
                    s = s & vbTab
                End If
            Next
            s = s & vbCrLf
        Next
        s = s & vbCrLf
    Next
    MsgBox s
End Sub

Но ячейки, найденные в одном area, могут повторяться в другом area, если область выделения пересеклась с другой областью выделения.

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