Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA / 10 сообщений из 10, страница 1 из 1
06.10.2006, 12:58:56
    #34037386
maccen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
Суть такая есть у меня файл 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
06.10.2006, 13:13:20
    #34037449
Boberman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
можно так

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

'начинать нужно с двойки.... на первом листе - результат
For i = 2 To 20
Cells(2, 2).Value = Cells(2, 2).Value + Worksheets(i).Cells(1, 1).Value
Next
...
Рейтинг: 0 / 0
06.10.2006, 13:22:49
    #34037480
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
можно так
Код: 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
06.10.2006, 13:45:13
    #34037568
maccen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
Огромное СПАСИБО!!!! УРА ЗАРАБОТАЛО!!!! ВСЕМ РЕСПЕКТ КТО ПОМОГ! если честно не ожидал что кто-то ответит и так быстро!
...
Рейтинг: 0 / 0
06.10.2006, 13:52:20
    #34037613
maccen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
а теперь помогите еще вот тут такое дело что тут:
код предоставленный vbapro работает!
Только вот забыл указать что надо весь диапазон забивать A1, A2 и так дальше по строчно, но чтобы уже во второй строке уже суммировалось по всем листам А2 и так дальше...
я не сильне в макросах... спасибо всем за ответы!
...
Рейтинг: 0 / 0
06.10.2006, 14:05:08
    #34037674
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
на листе выдели диапазон с ячейками, для которых считать суммы и запусти макрос 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
06.10.2006, 14:12:48
    #34037722
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
что-то подобное...
Код: 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
06.10.2006, 14:16:35
    #34037738
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
из справки
авторВвод ссылки на одну и ту же ячейку или группу ячеек в нескольких листах при помощи трехмерной ссылки
Книга должна содержать несколько листов.
Укажите ячейку, в которую следует ввести функцию.
Наберите = (знак равенства), введите имя функции, а затем введите открывающую круглую скобку.
Укажите ярлычок первого листа, на который нужно сослаться.
Удерживая нажатой клавишу SHIFT, укажите последний лист, на который необходимо сослаться.
Выделите ячейки, на которые необходимо сослаться.
Формула готова.
...
Рейтинг: 0 / 0
06.10.2006, 17:18:16
    #34038582
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA
VBA в данном случае и в самом деле не нужно и даже вредно
Рыба ищет-где глубже, человек-где больше рыбы.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ПОМОГИТЕ!!! для профи пара секунд, а от меня спасибо!! вопрос по VBA / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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