Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с компиляцией
 
 автор: П.Полиграфович   (09.06.2008 в 14:16)   личное сообщение
36 Кб.
 
 

Дело происходит в Excel
Ошибка "Object required" когда Set fibo = Cells(i, 2).Value

Private Function fibo(sum As Variant) As String
Dim x As Double, i As Integer
     Sheets("Лист3").Activate
      Range("b1").Value = "0"
      Range("b2").Value = "1"
      Range("b3").Value = "1"
             For i = 4 To 53
        fibo = CStr(sum(Cells(i - 1, 2), Cells(i - 2, 2)))
        Set fibo = Cells(i, 2).Value
        Next i
     End Function

  Ответить  
 
 автор: Bellerofont   (09.06.2008 в 14:28)   личное сообщение
 
 

Set используется для объектной переменной.
Значение ячейки Excel - не может быть Object.
Какой смысл в двойном присвоения для переменной fibo?

  Ответить  
 
 автор: П.Полиграфович   (09.06.2008 в 14:39)   личное сообщение
 
 

Понял, но так тоже не работает
пишет несоответствие типов

Private Function Fibo(sum As Variant)
Dim x As Double, i As Integer
     Sheets("Лист3").Activate
      Range("b1").Value = "0"
      Range("b2").Value = "1"
      Range("b3").Value = "1"
             For i = 4 To 53
        Fibo = sum(Cells(i - 1, 2), Cells(i - 2, 2))
           Next i
     End Function

Нужно присвоить значение ф-ции ячейке?
Последовательность считается если код не содержит ф-ию, но мне нужно через ф-цию именно!

  Ответить  
 
 автор: Анатолий (Киев)   (09.06.2008 в 15:11)   личное сообщение
 
 

Ну, во-первых, так:
Fibo = WorksheetFunction.Sum(Cells(...), Cells(...))
А если нужно сложить значения 2-х ячеек, то и вовсе без функции Sum.

А во-вторых, я не понимаю смысла вашей процедуры. Вы в цикле присваиваете функции результат сложения ячеек и больше ничего с этим не делаете. Функция вернет последнее вычисленное значение.

  Ответить  
 
 автор: П.Полиграфович   (09.06.2008 в 15:24)   личное сообщение
 
 

Спасибо за подсказку Насчет записи значения - это фрагмент кода.

Cells(i, 2).Value = Fibo

Без сумм тоже можно, но так надо!

It works!!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList