Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ActiveCell.FormulaR1C1 = "=SUM(R[-CInt(num)]C:R[-1]C)"


gentos ©   (2007-08-29 17:17:00) 

здрасте пишу макрос по работе необходимо есть следующая ситуация :
num типа integer - не работает !
когда пишу

ActiveCell.FormulaR1C1 = "=SUM(R[-39]C:R[-1]C)" - все работает
а когда подставляю вместо 39 num=39 и типа integer - не работает в чем прикол ?


gentos   (2007-08-29 17:39:00) [1]


> umbra ©   (29.08.07 17:24) [4]

все ок спасибо большое , тема закрыта


gentos   (2007-08-29 17:36:00) [2]


> umbra ©   (29.08.07 17:24) [4]


ActiveCell.FormulaR1C1 = "=SUM(R[-" + CStr(num) + " ]C:R[-1]C)"

но так тоже не работает :/


umbra   (2007-08-29 17:24:00) [3]


> SUM(R[-CInt(num)]C:R[-1]C)

формула - это строка.
"SUM(R[-" + Cstr(num) + "]C:R[-1]C)"


gentos   (2007-08-29 17:23:00) [4]


> Сергей М. ©   (29.08.07 17:21) [2]

компилируется но сумму на листе не выводит
я имею ввиду эта строка

ActiveCell.FormulaR1C1 = "=SUM(R[-CInt(num)]C:R[-1]C)"

не срабатывает , в случае когда пишу

ActiveCell.FormulaR1C1 = "=SUM(R[-39]C:R[-1]C)"

- работает ...


Сергей М.   (2007-08-29 17:21:00) [5]

Что значит "не работает" ? Не компилируется что ли ?


gentos   (2007-08-29 17:20:00) [6]

код корявый пишу первый раз в VB так что звыняйте , в чем прикол не знаю может нельзя в сумму вставлять переменную типа интежер, а можно только вставлять конкретное число ? хелпа не работает чего-то , гон


Sub MacrOblenergo()
Dim cordnameofpage, num, konec, i  As Integer
Dim NameOfList As String

   cordnameofpage = 2 ' incsrease on 40
   cord1 = 2          ' incsrease on 40
   cord2 = 41         ' incsrease on 40
   
   
   
 For counter = 1 To 4
   
   Windows("30817 ïî Îáëåíåðãî2.xls").Activate
   Sheets("Ëèñò2").Select
   NameOfList = Range("A" + CStr(cordnameofpage))
   NameOfList = Range("A" + CStr(cordnameofpage))
   For i = cordnameofpage To cordnameofpage + 50
    If NameOfList Range("A" + CStr(i)) Then
     konec = i - 1
     Exit For
    End If
   Next
   Range(Cells(cordnameofpage, 2), Cells(konec, 27)).Select
   Selection.Copy
   
   Windows("Òåñò Òåìïåðàòóðà çà 2004 ãîä.xls").Activate
   On Error Resume Next
   Err.Clear
   AnyThing = Sheets(NameOfList).Name
   If Err.Number = 0 Then
   'MsgBox "Ëèñò ""Ðàáî÷èé"" ñóùåñòâóåò!"
   'âñòàâëÿåì äàííûå
   Sheets(NameOfList).Select
   Range("B31").Select
   ActiveSheet.Paste
   Columns("A:A").EntireColumn.AutoFit
   'âñòàâëÿåì äàííûå
   
   Windows("30817 ïî Îáëåíåðãî2.xls").Activate
   Sheets("Ëèñò2").Select
   Range(Cells(1, 2), Cells(1, 27)).Select
   Selection.Copy
   Windows("Òåñò Òåìïåðàòóðà çà 2004 ãîä.xls").Activate
   Sheets(NameOfList).Select
   Range("B30").Select
   ActiveSheet.Paste
   
   
   Range("A30").Select
   ActiveCell.FormulaR1C1 = "Ñïîæèâàííÿ áðóòòî (ïî îáëåíåðãî)"
   Columns("A:A").EntireColumn.AutoFit
   Selection.Font.Bold = True
   
   '' ñ÷èòàåì ñóììó ïî ñòîëáöàì
   num = CInt(konec) - CInt(cordnameofpage) + 1            '39
   Range("C" + CStr(31 + CInt(num))).Select          ' c70
   Application.CutCopyMode = False
   ActiveCell.FormulaR1C1 = "=SUM(R[-CInt(num)]C:R[-1]C)"
   Selection.AutoFill Destination:=Range(Cells(31 + CInt(num), 3), Cells(31 + CInt(num), 27)), Type:=xlFillDefault
   '' ñ÷èòàåì ñóììó ïî ñòîëáöàì
   Range("B" + CStr(31 + CInt(num))).Select
   ActiveCell.FormulaR1C1 = "Bñüîãî"
   Range(Cells(31 + CInt(num), 2), Cells(31 + CInt(num), 27)).Select
   Selection.Font.Bold = True
   
   Columns("A:A").EntireColumn.AutoFit
   Columns("B:B").EntireColumn.AutoFit
   
   End If
   Err.Clear
     
   cordnameofpage = konec + 1
   
   
 Next
End Sub


Наверх

Титульная страница Поиск, карта сайта Написать письмо