Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.23;
Скачать: CL | DM;

Вниз

ActiveCell.FormulaR1C1 = "=SUM(R[-CInt(num)]C:R[-1]C)"   Найти похожие ветки 

 
gentos   (2007-08-29 17:17) [0]

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

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


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

код корявый пишу первый раз в 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("&#210;&#229;&#241;&#242; &#210;&#229;&#236;&#239;&#229;&#240;&#224;&#242;&#243;&#240;&#224; &#231;&#224; 2004 &#227;&#238;&#228;.xls").Activate
   On Error Resume Next
   Err.Clear
   AnyThing = Sheets(NameOfList).Name
   If Err.Number = 0 Then
   "MsgBox "&#203;&#232;&#241;&#242; ""&#208;&#224;&#225;&#238;&#247;&#232;&#233;"" &#241;&#243;&#249;&#229;&#241;&#242;&#226;&#243;&#229;&#242;!"
   "&#226;&#241;&#242;&#224;&#226;&#235;&#255;&#229;&#236; &#228;&#224;&#237;&#237;&#251;&#229;
   Sheets(NameOfList).Select
   Range("B31").Select
   ActiveSheet.Paste
   Columns("A:A").EntireColumn.AutoFit
   "&#226;&#241;&#242;&#224;&#226;&#235;&#255;&#229;&#236; &#228;&#224;&#237;&#237;&#251;&#229;
   
   Windows("30817 &#239;&#238; &#206;&#225;&#235;&#229;&#237;&#229;&#240;&#227;&#238;2.xls").Activate
   Sheets("&#203;&#232;&#241;&#242;2").Select
   Range(Cells(1, 2), Cells(1, 27)).Select
   Selection.Copy
   Windows("&#210;&#229;&#241;&#242; &#210;&#229;&#236;&#239;&#229;&#240;&#224;&#242;&#243;&#240;&#224; &#231;&#224; 2004 &#227;&#238;&#228;.xls").Activate
   Sheets(NameOfList).Select
   Range("B30").Select
   ActiveSheet.Paste
   
   
   Range("A30").Select
   ActiveCell.FormulaR1C1 = "&#209;&#239;&#238;&#230;&#232;&#226;&#224;&#237;&#237;&#255; &#225;&#240;&#243;&#242;&#242;&#238; (&#239;&#238; &#238;&#225;&#235;&#229;&#237;&#229;&#240;&#227;&#238;)"
   Columns("A:A").EntireColumn.AutoFit
   Selection.Font.Bold = True
   
   "" &#241;&#247;&#232;&#242;&#224;&#229;&#236; &#241;&#243;&#236;&#236;&#243; &#239;&#238; &#241;&#242;&#238;&#235;&#225;&#246;&#224;&#236;
   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
   "" &#241;&#247;&#232;&#242;&#224;&#229;&#236; &#241;&#243;&#236;&#236;&#243; &#239;&#238; &#241;&#242;&#238;&#235;&#225;&#246;&#224;&#236;
   Range("B" + CStr(31 + CInt(num))).Select
   ActiveCell.FormulaR1C1 = "B&#241;&#252;&#238;&#227;&#238;"
   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


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

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


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


> Сергей М. ©   (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)"

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


 
umbra ©   (2007-08-29 17:24) [4]


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

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


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


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


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

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


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


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

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



Страницы: 1 вся ветка

Текущий архив: 2007.09.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
10-1132784192
Nortsov
2005-11-24 01:16
2007.09.23
запись вариантного массива в файл


2-1188302008
Евгений Р.
2007-08-28 15:53
2007.09.23
KeyDown у tPanel


15-1188286117
Галинка
2007-08-28 11:28
2007.09.23
Файловый менеджер для SUSE Linux 10.1


15-1187882160
Joan
2007-08-23 19:16
2007.09.23
SQL


4-1175102152
Express
2007-03-28 21:15
2007.09.23
Как посласть сообщение о нажатие кнопки "Отмена" в MessageDLG?