Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Суммирование / 13 сообщений из 13, страница 1 из 1
12.01.2010, 15:55
    #36405610
hum_i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование
Добрый день! Вопрос такой как можно в ячейке использовать суммирование значение других ячеек?

Попробовала
Код: plaintext
1.
2.
Range("B11").Select
    Selection.FormulaR1C1 = "=СУММ(R[-8]C[-1];R[-5]C[-1];R[-2]C[-1])"
    Selection.Font.Bold = True
Дает ошибку.
...
Рейтинг: 0 / 0
12.01.2010, 16:16
    #36405663
_Boroda_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование
hum_i,

А так:

Range("B11").FormulaR1C1 = "=sum(R[-8]C[-1],R[-5]C[-1],R[-2]C[-1])"
Range("B11").Font.Bold = True
...
Рейтинг: 0 / 0
12.01.2010, 16:21
    #36405683
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование
Если надо именно по-русски, то типа
Код: plaintext
ActiveCell.FormulaLocal = "=СЦЕПИТЬ(""пр"";A2)"
Вот как это правильно с R1C1 (FormulaLocalR1C1 или иначе) использовать, попробуйте сами. Я бы эти RC не использовал для ясности....
...
Рейтинг: 0 / 0
18.01.2010, 12:36
    #36415659
hum_i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование
Само суммирование у меня получилось. Только вот не удается его организовать в цикле. В общем я попробовала так
Код: plaintext
1.
2.
Range("Cells(11,i)").Select
    ActiveCell.Formula = "=sum(Cells(3,i):Cells(10,i))"
    Selection.Font.Bold = True
Дает ошибку Method 'Range' of object '_Global' failed. Помогите пожалуйста.
...
Рейтинг: 0 / 0
18.01.2010, 13:13
    #36415793
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование
Так получается:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub tt()
i =  2 
Cells( 11 , i).Select
    ActiveCell.FormulaR1C1 = "=SUM(R[-8]C[0]:R[-1]C[0])"
    Selection.Font.Bold = True
End Sub

Если делать через R1C1, то там адреса задаются относительно активной ячейки. Т.к. в данном случае активная задаётся в цикле, то в самой формуле переменная не нужна.
...
Рейтинг: 0 / 0
18.01.2010, 13:47
    #36415903
hum_i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование
Это вы так обозначили R[-8]C[0] 3 строку? А как вообще обозначать строки по системе R1C1? Какая тут методика?
...
Рейтинг: 0 / 0
18.01.2010, 15:02
    #36416089
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование
Теорию не читал, но судя по практике, если активная строка 11, то -8 будет 3 :)
Какая тут методика - R1C1 это ячейка на один ниже и на один правее.
А R[-8]C[0]:R[-1]C[0] вот как раз и получается от 8 до 1 выше в этом же столбце.
...
Рейтинг: 0 / 0
19.01.2010, 09:13
    #36417200
hum_i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование
Спасибо большое
...
Рейтинг: 0 / 0
19.01.2010, 10:05
    #36417297
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование
Вообще тут тоже можно обойтись без Selection:
Код: plaintext
1.
2.
3.
4.
Sub tt()
i =  2 
Cells( 11 , i).FormulaR1C1 = "=SUM(R[-8]C[0]:R[-1]C[0])"
Cells( 11 , i).Font.Bold = True
End Sub
...
Рейтинг: 0 / 0
19.01.2010, 14:17
    #36418095
hum_i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование
Понятно. А вот если я хочу чтобы эти ячейки выделялись тоже в цикле как например
Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Range("A1:A108").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
        .TintAndShade =  0 
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
        .TintAndShade =  0 
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
        .TintAndShade =  0 
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
        .TintAndShade =  0 
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
        .TintAndShade =  0 
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
        .TintAndShade =  0 
        .Weight = xlThin
    End With
если в том случае при суммировании можно взять Cells(11, i), то здесь нужно брать от и до типа Cells(1, i):Cells(108, i)?
...
Рейтинг: 0 / 0
19.01.2010, 14:44
    #36418189
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование
Зачем циклом, можно сразу область указать. То что закомментировано, похоже на 2000 не проддерживается:
Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
Sub tt()
x =  1 
y =  108 
Set rng = Range(Cells(x,  1 ), Cells(y,  3 ))

    rng.Borders(xlDiagonalDown).LineStyle = xlNone
    rng.Borders(xlDiagonalUp).LineStyle = xlNone
    With rng.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
'        .TintAndShade = 0
        .Weight = xlThin
    End With
    With rng.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
'        .TintAndShade = 0
        .Weight = xlThin
    End With
    With rng.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
'        .TintAndShade = 0
        .Weight = xlThin
    End With
    With rng.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
'        .TintAndShade = 0
        .Weight = xlThin
    End With
    With rng.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
'        .TintAndShade = 0
        .Weight = xlThin
    End With
    With rng.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
'        .TintAndShade = 0
        .Weight = xlThin
    End With
End Sub
Только вот пример был некорректен, Borders(xlInsideVertical) и Borders(xlInsideHorizontal) в одном столбце не работает, я сделал А1:С108
...
Рейтинг: 0 / 0
20.01.2010, 08:10
    #36419473
hum_i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование
В общем в цикле все нормально работает, выглядит это так
Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Range(Cells( 1 ,i), Cells( 108 ,i)).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
        .TintAndShade =  0 
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
        .TintAndShade =  0 
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
        .TintAndShade =  0 
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
        .TintAndShade =  0 
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
        .TintAndShade =  0 
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex =  0 
        .TintAndShade =  0 
        .Weight = xlThin
    End With
Спасибо за помощь
...
Рейтинг: 0 / 0
20.01.2010, 09:12
    #36419534
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование
Я бы лучше без Select делал, тем более тут это легко в коде заменить.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Суммирование / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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