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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2010, 16:43   #1
Карен
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 32
Печаль Начинаю вводить функцию округления Fix(x) и выдает ошибку

Здравствуйте. Пытаюсь составить свою первую программу на языке визуал бейсик в ексель ,По книжке Гарбера. Почему система выдает ошибку составления. Начинаю вводить функцию округления Fix(x) и выдает ошибку, задание вот такое : напишите программу которая из 4 значений X= -1.8; -1,25;1,27;1,68 , выбирает такие значения для которых выполняется N ое условие из следующих 10: Fix(x)=Cint(x) и Fix(X) <> Int(X) ? все условия не буду перечислять, главное как правильно ее составлять начать, помогите пожалуйста.
Карен вне форума Ответить с цитированием
Старый 15.04.2010, 17:39   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Карен, у меня такое чувство, что ваша первая программа на языке визуал бейсик в ексель ,По книжке Гарбера - получилась!!!
Код:
Sub Main()
  Dim x(3) As Single
  x(0) = -1.8: x(1) = -1.25: x(2) = 1.27: x(3) = 1.68
  tit = "From: "
  s = "Is good"
  For i = 0 To 3
    tit = tit & " " & x(i)
    If OkData(x(i)) Then s = x(i) & " " & s
  Next
  MsgBox s, vbOKOnly, tit
End Sub

Function OkData(x As Single) As Boolean
  OkData = False
  If Fix(x) <> CInt(x) Then Exit Function
  If Fix(x) <> Int(x) Then Exit Function
  '...
  OkData = True
End Function
Поздравляю.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 16.04.2010, 01:53   #3
Карен
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 32
По умолчанию

IgorGO ,большое спасибо, я попытаюсь разобрать ее, и написать самому дальнейшие действия. Я до этого никогда не сталкивался с программированием, решил заняться этим делом, плохо что книга расчитана уже на продвинутых, хотя пишет для начинающих. Может что нибудь посоветуете в изучении на эту тему, для таких как я ,чайников? Спасибо за поддержку,очень приятно иметь дело с знающими людьми.
Карен вне форума Ответить с цитированием
Старый 16.04.2010, 02:34   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Ставить перед собой мелкие задачи и решать их.
Когда вы понимаете как организованы данные, что вы хотели получить на их основании и какими средствами и способами вы этого добились - так можно осваивать программирование.
Успехов!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 16.04.2010, 10:39   #5
Карен
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 32
По умолчанию

IgorGO , сейчас стал разбирать программу в ексель, почему-то выдает что переменная" tit" не определена? ,что бы это могло быть?
Карен вне форума Ответить с цитированием
Старый 16.04.2010, 11:00   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вообще-то в примере приведен полностью рабочий код.
скопируйте его в любой модуль книги, запустите Main(). При условии, что вы ничего не правили руками - все должно отработать.
Попробуйте для строгости после
Sub Main()
Dim x(3) As Single

дописать одну строку
Dim tit as String, S as string
tit - это я так решил назвать строку заголовка (Title), а S - это текст сообщения в окне сообщения.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 16.04.2010, 12:23   #7
Карен
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 32
По умолчанию

IgorGO ,А теперь пишет несоответствие с " For i = 0 To 3" , конкретно с" i", извините за назойливость просто хочется разобраться. Спасибо
Карен вне форума Ответить с цитированием
Старый 16.04.2010, 12:38   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

осмелюсь предположить что где-то вверху модуля написано
Option explicit
это строгая директива, которая обязует явно обьявлять каждую переменную прежде, чем ее использовать. Вы сами выставили строгие правила и сами их не придерживаетесь.

вносим завершающий штрих, добавляем в блок обьявлений:
Dim tit as String, S as string
еще одну переменную
Dim tit as String, S as string, i as integer
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 16.04.2010, 13:30   #9
Карен
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 32
По умолчанию

Спасибо,разобрался с программой,попробую в аналогичной форме сделать остальные, жаль в книге нет примеров написания этой программы.
Карен вне форума Ответить с цитированием
Старый 16.04.2010, 14:10   #10
Карен
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 32
По умолчанию

Вообще программа интересно составлена,а вот проще ее можно было бы составить, употребляя данные функции только, не применяя прочее что вы использовали? Спасибо..
Карен вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
игра выдает ошибку Kravec Свободное общение 2 26.02.2010 11:16
Макрос выдает ошибку Romuald Microsoft Office Excel 2 15.04.2009 22:42
ADOQuery - выдает ошибку kiber0net0 Общие вопросы Delphi 2 02.09.2008 19:49
Windows2003 ошибку выдает Cantana Windows 11 07.12.2007 06:04
MasterSource - выдает ошибку nataly_ukr БД в Delphi 10 12.10.2007 13:49