Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 24.07.2008, 12:09   #91
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Можно макросом в нужную ячейку вставить формулу. Тогда она будет следить. Например:
Код:
Sheets(14).Cells(7, 5).Formula = "=SUM(" & Sheets(1).Name & ":" & Sheets(13).Name & "!R42C6)"
А что значит ".Name " ?
Он пытается N раз что то открыть
Все, Понял.

Последний раз редактировалось valerij; 24.07.2008 в 12:45.
valerij вне форума
Старый 24.07.2008, 12:44   #92
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если в ячейку листа Excel вставить, например, формулу "=СУММ(Лист1:Лист13!F42)", где "Лист1" - имя первого нужного листа, "Лист13" - имя последнего нужного листа, то в ней будет подсчитана сумма ячеек "F42" листов от "Лист1" до "Лист13".
Мы ничего не открываем.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 24.07.2008, 13:41   #93
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

А эту формулу:
"=SUM('ЛЕН:Ц-31'!R[35]C[1])"
можно через переменную
"=SUM('ЛЕН:Ц-31'!R[ndd]C[1])"
или через Offse, как то сделать?
Код:
With Sheets(14).Range("E7").Offset(dat)
                          .Formula = "=SUM('ЛЕН:Ц-31'!R[ndd &]C[1])"
                          '.Value = .Value
          End With
Где "ndd" = 35 а потом с шагом 48
Где "dat" = 0 то 30
valerij вне форума
Старый 24.07.2008, 13:50   #94
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

То, что в кавычках, компилятор понимает как текст. Можно сформировать любую текстовую строку, используя &.
Например:
"=SUM('ЛЕН:Ц-31'!R[" & ndd & "]C[1])"
Т.е. сцепляем часть текста, значение переменной ndd и еще часть текста.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 24.07.2008, 13:58   #95
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
То, что в кавычках, компилятор понимает как текст. Можно сформировать любую текстовую строку, используя &.
Например:
"=SUM('ЛЕН:Ц-31'!R[" & ndd & "]C[1])"
Т.е. сцепляем часть текста, значение переменной ndd и еще часть текста.
Ага, блин, забыл, делал так
"=SUM('ЛЕН:Ц-31'!R["ndd & "]C[1])"
естественно, ошибка.
SAS
Спасибо!

З. ы.
SAS
а пост #87, как решить?
valerij вне форума
Старый 24.07.2008, 14:16   #96
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Прочтите внимательно последний абзац поста № 87.
Имя листа неоткрытой книги получить невозможно. Обращение только явное.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 24.07.2008, 14:30   #97
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Прочтите внимательно последний абзац поста № 87.
То я понял, я не понял это:
Range("A1").FormulaR1C1 = "=C:\Temp["Июль.xls"]Лист1'!RC"
valerij вне форума
Старый 25.07.2008, 06:59   #98
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Правильно так:
Код:
Range("A1").FormulaR1C1 = "='C:\Temp[Июль.xls]Лист1'!RC"
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 17.11.2008, 10:29   #99
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Почему, так, нельзя подсчитать сумму, синтаксис ВБА принимает?
Cells(31, 1) = Sum(Cells(1, 1), Cells(30, 1))

а так, можно!
Cells(3, 3) = Day(Cells(1, 5) - 1)
valerij вне форума
Старый 18.11.2008, 05:19   #100
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

В VBA можно использовать функцию рабочего листа Excel WorksheetFunction объекта Application. Например, как в Вашем примере,
Код:
[A31] = Application.Sum([A1], [A30])
, хотя, в данном случае это ни к чему. Можно просто
Код:
[A31] = [A1] + [A30]
Смысл есть тогда, когда необходимо просуммировать данные в диапазоне. Например,
Код:
[A31] = Application.Sum([A1:A30])
или, если у Вас строки (столбцы) вдальнейшем будут выражаться через переменные, то так:
Код:
Cells(31, 1) = Application.Sum(Range(Cells(1, 1), Cells(30, 1)))
По поводу
Цитата:
Cells(3, 3) = Day(Cells(1, 5) - 1)
я не понял вопроса.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 18.11.2008 в 05:26.
SAS888 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MsSQL - первый раз установил майкрософт SQL vados SQL, базы данных 16 19.07.2008 20:01
Первый баг (фото) mutabor Свободное общение 1 06.05.2008 11:51
Вроде на первый взгляд всЁ просто...... Solny6ko YasnoE Помощь студентам 4 17.09.2007 08:23
а первый взгляд просто.. Аlex Win Api 7 05.04.2007 18:34
конкурс программистов ! (первый конкурс) Alar Свободное общение 129 18.03.2007 00:50