18.06.2018, 00:59 [+3 UTC]
в нашей команде: 2 848 чел. | участники онлайн: 2 (рекорд: 21)

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

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

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

:: правила

:: новости

:: участники

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

:: форум

:: блоги

:: поиск

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

:: наш журнал

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

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

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

:: поддержка

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

Версия системы:
7.47 (16.04.2018)

Общие новости:
13.04.2018, 10:33

Форум:
17.06.2018, 22:18

Последний вопрос:
17.06.2018, 23:52

Последний ответ:
17.06.2018, 21:56

Последняя рассылка:
17.06.2018, 11:45

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

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

Наша кнопка:

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

Отзывы о нас:
01.02.2010, 12:15 »
lamed
Спасибо! Сам потратил параллельно около 4х часов, но нашел тольку самоучитель [вопрос № 176427, ответ № 259118]
12.08.2010, 21:14 »
ZimBaBu
Спасибо! Начал сбоить порт на одном из хабов. Проблема решена! [вопрос № 179711, ответ № 262794]
17.02.2012, 15:27 »
Николай Мироненко
Cпасибо smile [вопрос № 185456, ответ № 269991]

РАЗДЕЛ • Basic

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

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

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

solowey
Статус: Студент
Рейтинг: 88
Асмик Гаряка
Статус: Советник
Рейтинг: 55
Sergey V. Gornostaev
Статус: Специалист
Рейтинг: 51

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

Консультация онлайн # 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.16014 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.47 от 16.04.2018