powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
10 сообщений из 10, страница 1 из 1
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
    #34037386
maccen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Суть такая есть у меня файл report.xls там 20 листов, и лист analiz
Листы называются:01,...20
Нужно:
с каждого листа суммировать данныне диапазона я чеек в лист analiz.

Делаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
[SRC vba]Public Sub macr0()
    FilePath = Workbooks("report.xls").Path + "\"
'01
    Workbooks("report.xls").Worksheets("analiz").Cells( 4 ,  3 ).Value = Worksheets("01").Cells( 1 ,  1 ).Value + Worksheets("02").Cells( 1 ,  1 ).Value

End Sub

Private Sub CommandButton1_Click()
    Call macr0
    
End Sub
Если я вставляю 20 строк: +Worksheets("02").Cells(1, 1).Value
То программа матерится, можно ли сделать это каким-то циклов...
Всем зарание спасибо!
...
Рейтинг: 0 / 0
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
    #34037449
Boberman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно так

'начинать нужно с двойки.... на первом листе - результат
For i = 2 To 20
Cells(2, 2).Value = Cells(2, 2).Value + Worksheets(i).Cells(1, 1).Value
Next
...
Рейтинг: 0 / 0
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
    #34037456
Boberman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно так

'начинать нужно с двойки.... на первом листе - результат
For i = 2 To 20
Cells(2, 2).Value = Cells(2, 2).Value + Worksheets(i).Cells(1, 1).Value
Next
...
Рейтинг: 0 / 0
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
    #34037480
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub ss()
Dim Sh As Worksheet
Dim SumData As Double
    SumData =  0 
    With Workbooks("report.xls")
        For Each Sh In .Sheets
            If Not Sh.Name Like "analiz" Then
                SumData = SumData + Sh.Range("A1").Value
            End If
        Next Sh
        .Worksheets("analiz").Cells( 4 ,  3 ).Value = SumData
    End With
End Sub
...
Рейтинг: 0 / 0
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
    #34037568
maccen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное СПАСИБО!!!! УРА ЗАРАБОТАЛО!!!! ВСЕМ РЕСПЕКТ КТО ПОМОГ! если честно не ожидал что кто-то ответит и так быстро!
...
Рейтинг: 0 / 0
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
    #34037613
maccen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а теперь помогите еще вот тут такое дело что тут:
код предоставленный vbapro работает!
Только вот забыл указать что надо весь диапазон забивать A1, A2 и так дальше по строчно, но чтобы уже во второй строке уже суммировалось по всем листам А2 и так дальше...
я не сильне в макросах... спасибо всем за ответы!
...
Рейтинг: 0 / 0
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
    #34037674
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на листе выдели диапазон с ячейками, для которых считать суммы и запусти макрос ProcessRange.
Для каждой ячейки в выделенном диапазоне будет считаться сумма значений ячеек с других листов, у которых тот же адрес.

Код: 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.
Function SumForCell(RngAddress As String) As Double
Dim Sh As Worksheet
Dim SumData As Double

    SumData =  0 
    With Workbooks("report.xls")
        For Each Sh In .Sheets
            If Not Sh.Name Like "analiz" Then
                SumData = SumData + Sh.Range(RngAddress).Value
            End If
        Next Sh
        SumForCell = SumData
    End With
End Function


Sub ProcessRange()
Dim SelectedRange As Range
Dim Rng As Range

    Set SelectedRange = Application.Selection
    
    For Each Rng In SelectedRange
        Rng.Value = SumForCell(Rng.Address)
    Next Rng
    
    Set SelectedRange = Nothing
End Sub
...
Рейтинг: 0 / 0
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
    #34037722
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то подобное...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub SummAll()
    Dim i%, j%
    For i =  1  To Sheets.Count
        If Sheets(i).Name <> "analiz" Then
            For j =  1  To  3 
                If Sheets("analiz").Cells(j +  1 ,  2 ).Formula = "" Then
                    Sheets("analiz").Cells(j +  1 ,  2 ).Formula = "=" & Sheets(i).Name & "!A" & j
                Else
                    Sheets("analiz").Cells(j +  1 ,  2 ).Formula = Sheets("analiz").Cells(j +  1 ,  2 ).Formula & "+" & Sheets(i).Name & "!A" & j
                End If
            Next
        End If
    Next
End Sub
и сама книга... макрос SummAll
...
Рейтинг: 0 / 0
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
    #34037738
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из справки
авторВвод ссылки на одну и ту же ячейку или группу ячеек в нескольких листах при помощи трехмерной ссылки
Книга должна содержать несколько листов.
Укажите ячейку, в которую следует ввести функцию.
Наберите = (знак равенства), введите имя функции, а затем введите открывающую круглую скобку.
Укажите ярлычок первого листа, на который нужно сослаться.
Удерживая нажатой клавишу SHIFT, укажите последний лист, на который необходимо сослаться.
Выделите ячейки, на которые необходимо сослаться.
Формула готова.
...
Рейтинг: 0 / 0
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
    #34038582
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VBA в данном случае и в самом деле не нужно и даже вредно
Рыба ищет-где глубже, человек-где больше рыбы.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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