14.12.2017, 11:19 [+3 UTC]
в нашей команде: 2 376 чел. | участники онлайн: 13 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
14.12.2017, 11:04

Последний вопрос:
14.12.2017, 10:34

Последний ответ:
14.12.2017, 11:10

Последняя рассылка:
14.12.2017, 08:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
06.10.2009, 18:18 »
Соколов В.В.
Программа работает, вопрос раскрыт полностью! Спасибо большое, помогло. Язык написания понятен, исчерпывающие комментарии и принцип работы. [вопрос № 172980, ответ № 255084]
06.12.2012, 05:55 »
Иванов Анатолий Николаевич
+5 Благодарю за помощь! С уважением, Анатолий. [вопрос № 186888, ответ № 271793]

РАЗДЕЛ • Basic

Создание программ на языке Basic.

[администратор рассылки: Андреенков Владимир (Академик)]

Лучшие эксперты в этом разделе

Megaloman
Статус: Академик
Рейтинг: 114
Sergey V. Gornostaev
Статус: Специалист
Рейтинг: 54
mklokov
Статус: 6-й класс
Рейтинг: 24

Перейти к консультации №:
 

Консультация онлайн # 63948
Раздел: • Basic
Автор вопроса: Артемова Марина
Отправлена: 24.11.2006, 02:30
Поступило ответов: 1

Здраствуйте!
Подскажите новичку...пожалуйста.
мне нужно взять данные из таблицы Excel завести их в расчеты в программу написанную на Basic и результаты сохранить в другую таблицу Excel. Подскажите, пожалуста как происходит импорт, экспорт, а лучше скиньте ссылочки на книжки в инете которые можно скачать...Если можно вышлите книжки на мэйл.
Заранее большое спасибо.

Состояние: Консультация закрыта

Ответ # 128189 от PsySex (Профессионал)

Здравствуйте, Артемова Марина!
1. Подключить в референсах микрософт ексель
2.
==========================================================
Dim myExcel As Excel.Application
Dim lVar As Long
Set myExcel = New Excel.Application

'открываем и читаем в lVar
myExcel.Workbooks.Open ("c:\Test.xls")
lVar = Val(myExcel.Range("A1").Value)
'закрываем файл
myExcel.ActiveWorkbook.Close
'делаем расчет
lVar = lVar * 1000 / 2
'открываем новый файл и вносим новые данные
myExcel.Workbooks.Open ("c:\Test1.xls")
myExcel.Range("A1").Value = "Result:"
myExcel.Range("B1").Value = Str(lVar)
'если надо печатаем на принтере
'myExcel.Sheets.PrintOut
'сохраняем изменения если нужно
myExcel.ActiveWorkbook.Save
'если изменения не сохранияем, выставим флаг, чтоб
'эксель не задавал вопросов при закрытии файла
'myExcel.ActiveWorkbook.Saved = True
'если надо сохраним под другим именем
'myExcel.ActiveWorkbook.Save "C:\test2.xls"
'и закрываем всё это дело, затем очищаем объект
myExcel.ActiveWorkbook.Close
myExcel.Quit
Set myExcel = Nothing


Консультировал: PsySex (Профессионал)
Дата отправки: 24.11.2006, 10:19

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 63948

Посетитель

ID: 5165

# 1

= общий = | 25.11.2006, 13:48 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

В ответе товарища PsySex все правильно, за исключением одной мелочи: вместо функции Val, конвертирующей текст в число, лучше использовать CLng (для Long-чисел), т. к. иногда (не всегда) по некоей, неизвестной пока мне закономерности, Val выдает ошибку при конвертации дробных чисел. Почему так - незнает никто. Ну и, в качестве хорошего тона, надобы было проверить Isnumeric'ом, число ли вообще в ячейке.


Посетитель

ID: 22917

# 2

= общий = | 27.11.2006, 13:35 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Могу добавить, что Value от нескольких ячеек вернет двумерный массив, где первое измерение - строка, второе - столбец, также можно присваивать значения сразу нескольким ячейкам. Dim a Dim r, c As Integer a = Source.Range("A1:C8").Value For r = LBound(a, 1) To UBound(a, 1) For c = LBound(a, 2) To UBound(a, 2) a(r, c) = Val(Replace(a(r, c), ",", ".")) * 2 Next c, r Destination.Range("A1:C8").Value = a По литературе,к сожалению, конкретно не скажу, если знаете английский - стандартная справка VBA для Excel + "записывальщик" макросов - лучшее, что знаю, а так нужно искать что-то вроде "Автоматизация Excel" з/ы Функция Val() в качестве разделителя целой и дробной части всегда использует (.)точку. Если используется другой (в русском языке обычно (,)запятая) то для дробных чисел можно использовать CDbl() с проверкой IsNumeric(), или Val(Replace(Value , "," , "." )) можно без проверки, а CLng() будет округлять до ближайшего четного.

 

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

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14836 сек.

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн