VB in Excel, как взять инфу из ячейки листа неоткр. книги?

Программирование на Visual Basic for Applications
Kokunov
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 29.03.2007 (Чт) 8:09

VB in Excel, как взять инфу из ячейки листа неоткр. книги?

Сообщение Kokunov » 29.03.2007 (Чт) 8:13

Ситуация такая, есть каталог со сводками такой структуры:
01.03.2007_Оперативная_сводка.xls
02.03.2007_Оперативная_сводка.xls
03.03.2007_Оперативная_сводка.xls
...
31.03.2007_Оперативная_сводка.xls

В каждой книге есть лист "Добыча" и в нем есть табличка "Данные за прошлые сутки"
Что бы заполнить эту табличку надо выдрать из файла за предыдущий день некоторую инфу...
Раньше я реализовывал все это с помощью функции ДВССЫЛ (небыло проблем с абсолютными путями).
Теперь же надо использовать только относительные пути к файлам. Пришлось занятся макросами.

Подскажите решение проблимы или хотябы направление, куда копать?

PS В VB не спец, т.к. писал раньше на дельфи... в целом с языком проблем не имею, на пальцах можно не объяснять.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 29.03.2007 (Чт) 8:24

Таки непонятно в чем же проблема? Если судить по заголовку, то есть нездоровое желание получить данные из неоткрытого файла, если по тексту, то совсем непонятно чего хотим.
Весь мир матрица, а мы в нем потоки байтов!

Kokunov
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 29.03.2007 (Чт) 8:09

Re: VB in Excel, как взять инфу из ячейки листа неоткр. книг

Сообщение Kokunov » 29.03.2007 (Чт) 10:56

!Viper! писал(а):Таки непонятно в чем же проблема? Если судить по заголовку, то есть нездоровое желание получить данные из неоткрытого файла, если по тексту, то совсем непонятно чего хотим.

Kokunov писал(а):Ситуация такая, есть каталог со сводками такой структуры:
01.03.2007_Оперативная_сводка.xls
02.03.2007_Оперативная_сводка.xls
03.03.2007_Оперативная_сводка.xls
...
31.03.2007_Оперативная_сводка.xls

В каждой книге есть лист "Добыча" и в нем есть табличка "Данные за прошлые сутки"
Что бы заполнить эту табличку надо выдрать из файла за предыдущий день некоторую инфу...
Раньше я реализовывал все это с помощью функции ДВССЫЛ (небыло проблем с абсолютными путями).
Теперь же надо использовать только относительные пути к файлам.

Поясню:
Мне нужно сделать так, что бы при открытии файла 02.03.2007_Оперативная_сводка.xls на листе "Добыча" таблица "Данные за прошлые сутки" заполнилась данными из книги 01.03.2007_Оперативная_сводка.xls.
При открытии смотрица какая дата текужего файла и открывается файл за вчерашний день.
Раньше я реализовывал все с помошью функция екселя, теперь мне нальзя работать с абсолютными путями, т.к. сводка открывается на разных компах... функции екселя не могут работать с относительными путями, если только не открыты эти книги, на которые идет ссылка. А меня не устраивать открывать по 30 книг за раз.
К сожелению я не силен в VB, и не знаю ка реализуется работа с файлами определенного формата (в моем случае это xls)

Резумируя: мне надо получить значение определенной ячейки определенного листа определенной книги.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 29.03.2007 (Чт) 11:05

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

Kokunov
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 29.03.2007 (Чт) 8:09

Сообщение Kokunov » 29.03.2007 (Чт) 11:37

Модераторы, пожалуйста перенесите топик в форум VBA

Kokunov
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 29.03.2007 (Чт) 8:09

Сообщение Kokunov » 29.03.2007 (Чт) 11:42

Прошу прощения за флуд :) Оказалось не умею юзать поиск! :)

Поковырявшись в подобных темах понял что в основном решение проблемы - читать XLS как бинарник самому...

А есть ли возможность научить excel использовать относительные пути в ссылках?
(По умолчанию при сохранении ексел меняет относительные пути в ссылках на абсолютные. т.е. 2 варианта - либо открывать самому книгу в ручную, на которую ссылается формула, либо использовать абсолютный путь. Первое просто невозможно из за ограничения производительности компьютера - 31 открытая книга не каждый комп потянет. Второй путь невозможен, т.к. сводки открываются на разных компах с разными абсолютными путяыми к файлам)

Просьба, кто уже копал в этом направлении, можете помочь?
Повторюсь в VB я не силен... изучал дельфи в свое время,
если можно подкиньте процедуру чнения из файла содержимого ячейки. Пожалуйста.

Kostyan
Постоялец
Постоялец
 
Сообщения: 439
Зарегистрирован: 20.09.2002 (Пт) 4:14
Откуда: Россия, Уссурийск

Сообщение Kostyan » 30.03.2007 (Пт) 5:23

В инете полно примеров работы с файлами Excel из VB, вот самый ближайший:
http://vbstreets.ru/VB/Sources/66458.aspx
Нет ничего невозможного для человека с интеллектом.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.03.2007 (Пт) 6:22

Kokunov писал(а):Поковырявшись в подобных темах понял что в основном решение проблемы - читать XLS как бинарник самому...

:roll:
http://bbs.vbstreets.ru/viewtopic.php?p=50666#50666
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 90

    TopList