![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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