Появилась идея сделать универсальный путь к файлу - он записан текстом в ячейке и его можно поменять. Один раз его прописать где-нить типа на листе config, типа как настройка.
В приложении все работает - через ДВССЫЛ у меня появляется значение ячейки на втором листе page2!A1 - все ок, но вот только название ячейки A1 было прописано тоже как текст и, соответственно, формула не протягивающаяся. Можно ли что-нить придумать?
Владимир, не знал что можно вот так {2002;2115} сделать, я пытался через ИЛИ и ,естессно, не получалось, спасибо! Такая формула вообще простая и удобная.
Всем привет. Что-то я туплю и не могу сообразить. В приложении все описано. 2 столбца - коды и числа, надо просуммировать числа, по определенным кодам. Можно ли это сделать одной формулой? Чтобы все работало, приходится добавлять новый столбец, либо использовать несколько формул в одной ячейке. Спасибо
Public Sub expenses_utilit(mon As Range, year As Range, per As Range, vvod As Range, data_sales As Range, utilit As Range)
Dim x(12) As String Dim m As Integer Dim i As Integer Dim l As Integer Dim j As Integer Dim k As Integer Dim cnt As Integer Dim rost_sal As Integer Dim y As Integer Dim revenue(2) As Single
For i = 0 To n - 1 If x(i) = mon.Value Then m = i End If Next
k = n - m + n * (per.Value - 1)
cnt = m index_infl = 0 H = 4
Do While k > 0
If (k <= n - m + n * (per.Value - 1) - data_sales.Value + 1) Then
utilit.FormulaR1C1 = "=R[1]C*R[2]C*Initial!R25C5" With utilit .NumberFormat = "#,##0" .Interior.ColorIndex = 15 .Font.Name = "Times New Roman" .Font.Size = 10 End With
revenue(0) = revenue(0) + utilit
If (vvod.Value = "Год") Then Columns(H).Hidden = True Else Columns(H).Hidden = False End If
Else utilit.Formula = "0" With utilit .NumberFormat = "#,##0" .Interior.ColorIndex = 15 .Font.Name = "Times New Roman" .Font.Size = 10 End With energy.Formula = "0" With energy .NumberFormat = "#,##0" .Interior.ColorIndex = 2 .Font.Name = "Times New Roman" .Font.Size = 10 End With
If (vvod.Value = "Год") Then Columns(H).Hidden = True Else Columns(H).Hidden = False End If
End If
Set utilit = utilit.Offset(0, 1)
cnt = cnt + 1
If cnt >= n Then H = H + 1 cnt = 0
utilit = revenue(0) With utilit .NumberFormat = "#,##0" .Interior.ColorIndex = 15 .Font.Name = "Times New Roman" .Font.Size = 10 End With
revenue(0) = 0
y = y + 1
Set utilit = utilit.Offset(0, 1)
End If
k = k - 1 H = H + 1
Loop
For l = k + 1 To 7 * 12
utilit.Clear With utilit .Interior.ColorIndex = 2 End With Set utilit = utilit.Offset(0, 1)
Next
End Sub
Вот код программы. В зависимости от заданных параметров выводит структуру по месяцам или по годам. Это издержки(затраты). В первой строчке у меня зарплаты - с января и 48 мес - выводятся зарплаты. Во второй строчке - оборудование тоже, самое, только там уже нужна формула(не ссылка на зп, как в первом случае).
Получается, что для всех нужных строк будет одинаковый код, кроме самой формулы: utilit.FormulaR1C1 = "=R[1]C*R[2]C*Initial!R25C5"
В аргументе Sub формула не передается(либо я синтаксис плохо знаю), была идея рассчитать формулы и значения вписать в другие строки(скрытые), а потом просто передавать на формулу, а только значение ячейки - может можно проще все сделать?
А при использовании FormulaR1C1 и r1 = r1.Offset() не должен ли инкрементироваться в дате #1/1/2012# первый символ?! Вообще у меня случайно как-то получилось(Наподобии AutoFill), но начал подчищать мусор и видимо что-то удалил (((( Терь не пойму как у меня так получилось
а если увеличивать месяц, то что можно добавить ?! перевести дату в общей формат и добавить 30?! Тока дней где-то 30, где-то 31
Всем привет! Подскажите, как можно инрементировать дату на VBA что было так:
янв.12 фев.12 мар.12 и до значения указанного в ячейке(допустим 1 год)
Я делаю так
Dim r1 As Range Dim dt As Date Dim i As Integer
Set r1 = Range("A1") r1.NumberFormat = "mmm-yy"
dt = #1/1/2012#
for i = 1 to (сколько задано лет) r1.Select r1.FormulaR1C1 = dt Set r1 = r1.Offset(0, 1) next
Получается так: создается именно столько сколько надо ячеек, но везде пишется янв.12 почему не инкрементируется дата?!
AutoFill не поможет, т.к. не понятно до какой ячейки автофилить. Если мой способ вообще не должен работать, то подскажите, как вообще можно решить мою задачу.
Дано: Начал мес март - значения меняются Начал год 2012 - значения меняются Срок проекта 2 - значения меняются