Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Excel VBA, вставка формулы суммирования ? Добавлено: 01.11.05 13:53  

Автор вопроса:  SLV
Необходимо при открытии рабочей книги макросом вставить в рабочий лист формулу суммирования строк в одном столбце от 4 строки до последней заполненной (в идеале) или до конца столбца. Делал вот так:
Range("G2").FormulaR1C1 = "=SUM(R[2]C:R[intLastRow]C)"
в кавычках intLastRow не работает, естественно )))
Помогите кто может ...

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 01.11.05 14:12
RTFM?

"=SUM(R[2]C:R[" & cstr(intLastRow) & "]C)"


RTFM, безусловно.

Ответить

Номер ответа: 2
Автор ответа:
 SLV



Вопросов: 4
Ответов: 10
 Профиль | | #2 Добавлено: 01.11.05 15:27
Аааа вон оно как ))) Работает все прекрасно. Спасибо за помощь.
RTFM что такое?

Ответить

Номер ответа: 3
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #3 Добавлено: 01.11.05 15:51
http://www.google.ru/search?hl=ru&q=define%3A+RTFM&lr=

Ответить

Номер ответа: 4
Автор ответа:
 SLV



Вопросов: 4
Ответов: 10
 Профиль | | #4 Добавлено: 01.11.05 16:05
)))
Не нашел в мануалах таких тонкостей, чесно слово

Ответить

Номер ответа: 5
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #5 Добавлено: 01.11.05 16:12
Конкатенация - это не тонкость.
Это для строк как сложение для чисел.

Ответить

Номер ответа: 6
Автор ответа:
 SLV



Вопросов: 4
Ответов: 10
 Профиль | | #6 Добавлено: 01.11.05 16:30
))) не сижу я целыми днями за программированием, только при практической необходимости.

задача изменилась немного. неудобно формулу на лист выводить, нужно лишь значение вышеизложенной формулы в ячейке листа. помогайте пожалуйста.

Ответить

Номер ответа: 7
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #7 Добавлено: 01.11.05 16:49
Range("G2";).FormulaR1C1 = "=SUM(R[2]C:R[intLastRow]C)"
Range("G2";).Value = Range("G2";).Value

Ответить

Номер ответа: 8
Автор ответа:
 SLV



Вопросов: 4
Ответов: 10
 Профиль | | #8 Добавлено: 01.11.05 16:54
понятно, при этом обновление экрана убираем и все красиво.
Спасибо большое за помощь

Ответить

Номер ответа: 9
Автор ответа:
 Archi



Вопросов: 1
Ответов: 1
 Профиль | | #9 Добавлено: 04.11.05 12:38
Vot Vam function summirovanie diapazona cvetom
Function sumRangeColor(iObrazets, iDiapazon) As Double
    
iColor = iObrazets.Interior.ColorIndex

For Each iCell In iDiapazon
    If iCell.Interior.ColorIndex = iColor Then
       If IsNumeric(iCell) = True Then
          sumRangeColor = sumRangeColor + iCell
       End If
    End If
Next

End Function

Ответить

Номер ответа: 10
Автор ответа:
 SLV



Вопросов: 4
Ответов: 10
 Профиль | | #10 Добавлено: 04.11.05 15:28
Спасибо, немного громоздко. Вариант с циклом в большой таблице отпадает.
Этот код работает быстрее:

Sub ReCalculate()
Dim intLastRow As Integer
intLastRow = Worksheets("buyers";).Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
With Worksheets("A";)
     .Range("g2";).FormulaR1C1 = "=SUM(R[2]C:R[" & CStr(intLastRow) & "]C)"
     .Range("g2";).Value = .Range("g2";).Value
("i2";).Value
End With
End Sub

Ответить

Номер ответа: 11
Автор ответа:
 SLV



Вопросов: 4
Ответов: 10
 Профиль | | #11 Добавлено: 04.11.05 15:31
Sub ReCalculate()
Dim intLastRow As Integer
intLastRow = Worksheets("buyers";).Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
With Worksheets("buyers";)
     .Range("g2";).FormulaR1C1 = "=SUM(R[2]C:R[" & CStr(intLastRow) & "]C)"
     .Range("g2";).Value = .Range("g2";).Value
End With
End Sub

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам