Bazaprogram.ru

Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Vba excel выбрать файл для открытия

Vba excel выбрать файл для открытия

Можно ли открыть в одном и том же документе excel несколько файлов и чтобы они присутствовали в нём одновременно?

Как средствами VBA для открытия файлов не задавать точное имя файла (Workbooks.Open Filename:= _»имя файла» ), а вызвать диалоговое окно типа стандартного для открытия файлов — Файл->Открыть ?

Почему при открытии файла Файл->Открыть некторые числа файла в Excel’e отображаются как Дата — май.43 , а при открытии через VBA Workbooks.Open Filename:= _» все чесла отображаются нормально?

2. V3 , 29.10.2005 17:36
ВВ
1. без добавления новой книги, можно считывать данные на прямую из закрытой книги эту функцию можешь посмотреть и доработать Ссылка на ячейки другой книги в этой же директории без указания полного пути (http://forum.ixbt.com/topic.cgi? >или как вариант открываем как обычно потом копируем лист нужный, и закрываем исходный файл
(ну этот вариант ты уже и сам увидел)

2. вызов диалогового окна

Добавление от 29.10.2005 17:49:

это проблема с десятичным разделителем для русской раскладки это «,» для английской «.» (вроде так )
вообщем когда ты открываешь и считываешь с десятичным разделителем точка, то Excel расценивает это как дату, если бы была запятая все было бы ок.
мне твой вариант повторить не удалось с разным открытием что так что так открывалось одинаково

3. Proforg , 30.10.2005 14:42
V3
Проблему с разделителем для Excel 2К можно побороть, сменив его на время открытия файла во всей системе (правда, сие базируется на функциях ядра, что не есть хорошо)
4. V3 , 30.10.2005 16:06
Proforg
согласен, можно и в ядре поменять посредством вба на время разделитель
но лучше наверно попробовать сходу считывать данные без открытия и подменять разделитель
или когда считали данные их уже обработать
5. ВВ , 30.10.2005 19:39
V3
1. без добавления новой книги, можно считывать данные на прямую из закрытой книги эту функцию можешь посмотреть и доработать
Ещё непопробовал. Данные возможно считывть только из закрытой книги excel? Из закрытого файла *.htm их тоже возможно считывать, если доработать функцию?

2. вызов диалогового окна
Нехочет у меня эта процедура работать ругается на FileDialog — user-defined type not defined. Надо какие то библиотеки подключать? Или прототипы библиотечных функций писать?

Добавление от 30.10.2005 20:47:

C датами как то странно, несовсем понял. Excel файлы по какому то разному методу открывает: если вручную Файл->Открыть — то даты получаются вместо чисел, а если на VBA Workbooks.Open Filename:= то всё нормально.
Поменял в настройках(Язык и стандарты) запятую на точку и всё стало нормально и при открытии через Файл->Открыть. Только это всё будет использоваться на разных компах. хотел бы добиться полной автоматизированности — без инструкций юзерам — «Поменяйте там то на то то. «

но лучше наверно попробовать сходу считывать данные без открытия и подменять разделитель
или когда считали данные их уже обработать

Есть ли какая нибудь стандартная функция которая конвертит дату в число? — только нормальное число которое было в оригинальном файле, а не то что excel выдаёт если поменять формат ечейки с даты на числовой.

P.S. Делаю всё в Win2K Excel2000

6. V3 , 30.10.2005 20:55
ВВ
1. можно и из html брать, только надо смотреть как организовать это дело или как просто чтение из текстового файла. Та функция что по ссылки с html работать не будет

2. Упсс извени не посмотрел твою версию Excel
FileDialog появился с версии 2002, поэтому предыдущими версиями не поддерживается
тебе надо использовать
object.GetOpenFilename (фильтр файла, идекс фильтра, заголовок, подпись кнопки, множественный выбор)
набирал с листа так сказать, поэтому могут быть синтаксические помарки поправь если что

Добавление от 30.10.2005 21:43:

ВВ
как вариант добавить макрос на открытие книги чтобы искал и точку заменял на запятую (ИМХО может есть проще)

Добавление от 31.10.2005 03:51:

Исправил не большую ошибку, и немного расширил пример чтобы было понятнее
В данном примере кода нельзя использовать выделения файлов с Ctrl и Shift (т.е. сразу несколько) для этого надо изменить немного

По поводу точки/запятой может быть надо проверять версию Excel (русская/английская)

7. ВВ , 31.10.2005 09:14
Спасибо за ответы!

V3
1. Решил пойти всё же первым варинатом — открыть и оттуда скопировать.

2.

Хотел только ещё указать каталог в котором открывать через ChDir, но неполучилось

3. как вариант добавить макрос на открытие книги чтобы искал и точку заменял на запятую (ИМХО может есть проще)

Читать еще:  Добавление заголовка в word
Ссылка на основную публикацию
Adblock
detector