Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 | 2 |

 

  Вопрос: Работа с данными Добавлено: 29.07.08 19:50  

Автор вопроса:  joker-pnz
Доброго времени суток! На работе веду отчетность в EXELe. Файл состоит из 28-31 страницы. 1 - 1 число месяца, 1 - 2 число месяца,..., 31-31 число месяца. Нужен скрипт, который будет выводить в лист 7 данные за предыдущие 6 дней, то есть 1,2,3,4,5,6 число, на 8 лист аналогично только данный за 2,3,4,5,6,7,... на 31 число за 25,26,27,28,29,30. Смысл я думаю понятен. Хочется использовать скрипт, который автоматически бы все данные подставлял. Пока что приходится работать в ручную прописывая ссылки на предидущие страницы для каждого рабочего листа. Очень не удобно. Помогите кто чем может.

Ответить

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

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



Вопросов: 23
Ответов: 417
 Профиль | | #1 Добавлено: 29.07.08 20:30
Нужен скрипт, который будет выводить в лист 7 данные за предыдущие 6 дней, то есть 1,2,3,4,5,6 число
Данные в каком виде: по столбцам, сумма по соответствующим ячейкам или еще как ?

Ответить

Номер ответа: 2
Автор ответа:
 joker-pnz



Вопросов: 1
Ответов: 8
 Профиль | | #2 Добавлено: 29.07.08 20:39
Данные на каждом листе в одной и той же ячейке А1-надо чтобы на каждом последующем создаваемом листе указывались предидущие показатели

Ответить

Номер ответа: 3
Автор ответа:
 joker-pnz



Вопросов: 1
Ответов: 8
 Профиль | | #3 Добавлено: 29.07.08 20:43
указывалисть в других ячеяках, например
K1-данные на 6 листов назад
L1-данные на 5 листов назад
M1-данные на 4 листов назад
N1-данные на 3 листов назад
O1-данные на 2 листов назад
Р1-данные на 1 листов назад

Ответить

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



Вопросов: 23
Ответов: 417
 Профиль | | #4 Добавлено: 29.07.08 22:28
В книге создаются листы 1, 2, 3 и т. д. На каждом листе кнопка. На нее макрос.
Sub SetLinks()
  Dim sh As String
  Dim i As Integer, Col As Byte  'от 0 до 255
  
  Application.DisplayAlerts = False 'отключение системных предупреждений
  sh = ActiveSheet.Name  'определяем день по номеру листа
  With Worksheets(sh)
    Col = 11   'номер колонки К
    For i = 6 To 1 Step -1
      .Cells(1, Col).Formula = "='" & sh - i & "'!A1"  'вставка ссылки. Если листа нет, то будет отображаться #Ref!
      Col = Col + 1  'следующая колонка
    Next i
  End With
  Application.DisplayAlerts = True 'включение системных предупреждений
End Sub
На выбранном/активном листе в колонки К...P вставляются ссылки на нужные ячейки.

Ответить

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



Вопросов: 23
Ответов: 417
 Профиль | | #5 Добавлено: 29.07.08 22:29
Забыла дополнение. Все пишется в строку 1.

Ответить

Номер ответа: 6
Автор ответа:
 joker-pnz



Вопросов: 1
Ответов: 8
 Профиль | | #6 Добавлено: 30.07.08 12:53
Благодарю! сегодня попробую! Эх жалко смайликов нет - подарил бы вам краситвый букет :)

Ответить

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



Вопросов: 23
Ответов: 417
 Профиль | | #7 Добавлено: 30.07.08 14:18
Спасибо.
Про смайлики к админу сайта. :-) Может создаст смайлики: для девочек - букет, для мальчиков - кружку/ящик пива. :-)))

Ответить

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



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #8 Добавлено: 30.07.08 14:59
Про смайлики к админу сайта. :-) Может создаст смайлики: для девочек - букет, для мальчиков - кружку/ящик пива. :-)))

а для всех вместе - пачку банкнот, или бочонок с золотом....

Ответить

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



Вопросов: 23
Ответов: 417
 Профиль | | #9 Добавлено: 30.07.08 18:12
Тоже неплохо. :-)

Ответить

Номер ответа: 10
Автор ответа:
 joker-pnz



Вопросов: 1
Ответов: 8
 Профиль | | #10 Добавлено: 30.07.08 19:22
К сожалению при нажатии на кнопку с макросом появдяется ошибка Can't execute code in break mode. Ругается на строку
.Cells(1, Col).Formula = "='" & sh - i & "'!A1" 'вставка ссылки. Если листа нет, то будет отображаться #Ref!

Может быть я что-то не так сделал?

Ответить

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



Вопросов: 23
Ответов: 417
 Профиль | | #11 Добавлено: 30.07.08 20:01
Вот так попробуй заменить:
.Cells(1, Col).Formula = "='" & Val(sh) - i & "'!A1"
Листы точно названы просто числами по дням месяца ?

Ответить

Номер ответа: 12
Автор ответа:
 joker-pnz



Вопросов: 1
Ответов: 8
 Профиль | | #12 Добавлено: 30.07.08 20:03
Да, 1,2,3,4,5,6,7,8,9,10...

Ответить

Номер ответа: 13
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #13 Добавлено: 30.07.08 20:09
Замена не помогает ?

Ответить

Номер ответа: 14
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #14 Добавлено: 30.07.08 20:13
А, поняла кажется. Нажми остановить макрос в редакторе. А птом нажми кнопку.

Ответить

Номер ответа: 15
Автор ответа:
 joker-pnz



Вопросов: 1
Ответов: 8
 Профиль | | #15 Добавлено: 30.07.08 20:15
нет... :(

Ответить

Страница: 1 | 2 |

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



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