данные из одного файла в другой (VB Excel)

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
russian imigration
Сообщения: 34
Зарегистрирован: 02 май 2006, 08:31
Контактная информация:

предположим, у меня есть 2 файла 1.xls и 2.xls, и мне надо из первого с листа "Лист1" ячейки (1,1) перенести значение во второй туда же
как это прописать в макросе второго файла?
как в "Worksheets(Лист1).Cells(1, 1) = Worksheets(Лист1).Cells(1, 1)" добавить и сами файлы?


просто ссылкой не катит, тк теоретически надо переносить сотни (если не тысячи) данных, с поисками и тп...

заранее спасибо
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте russian imigration.
"Предположим" я догадался, что Ваш пост является вопросом, но совсем не понятно к кому он обращен, и кому Вы "заранее" благодарны. :(

Евгений.
P.S. да, и по существу вопроса :)
http://woodash.ifolder.ru/3765138
DataFromTable.rar 15.23 кб
russian imigration
Сообщения: 34
Зарегистрирован: 02 май 2006, 08:31
Контактная информация:

что-то никак не получается, а файл, что выложил Тесленко не открывается
значит так:
у меня макрос ВБ в одном экселевском документе, ему надо прочитать ячейки из другого экселевского документа
создал переменную FileToOpen с полным путем на второй файл (для чтения). проверил, переменная равна
F:\calc 0.3\шаблон РТМ русифицированный.xls

в коде пишу

Код: Выделить всё

Dim str As String 
str = Workbooks(FileToOpen).Sheets(1).Cells(3, 10)
мне на это дело выдает "Subscript out of range"
подскажите, пожалуйста, как правильно написать
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте russian imigration.
1. Что значит "...файл ...не открывается...", невозможно открыть архив или не подключается надстройка?
2. "создал переменную ... проверил, переменная равна ... " - а объект (файл), адрес которого содержит переменная, открывался ?
С помощью кода приведенного ниже, можно выполнить Вашу задачу

Код: Выделить всё

Sub readFile()
Dim oXL As Workbook
Dim FileToOpen As String, sStr As String 
' не стоит задавать переменной имя [B]str[/B], т.к. в VB существует функция с таким именем
FileToOpen = "F:\calc 0.3\шаблон РТМ русифицированный.xls"
Set oXL = Workbooks.Open(FileToOpen) ' !!! открывается файл
'............
 sStr = oXL.Sheets(1).Cells(1, 1)
'............
oXL.Close   ' объект закрывается 
Set oXL = Nothing ' освобождается память использовавшаяся объектом 
End Sub

Евгений.
P.S. "подскажите, пожалуйста..." - это обращение снова адресовано "никому", :( если Вы не знаете к кому обращаться - просто здоровайтесь, это тоже будет правильно.
Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

Код: Выделить всё

Dim strFileToOpen
Dim wrkBook As Workbook
strFile = "C:\SomeDirectory\1.xls"
Set wrkBook = Workbooks.Open(strFile)

' Переносим Значение из 1.xls в текущую книгу (с макросом)
ThisWorkBook.Worksheets("Лист1").Cells(1,1).Value = _
                wrkBook.Worksheets("Лист1").Cells(1,1).Value

wrkBook.Close
Set wrkBook = Nothing
На заказ: VBA, Excel mc-black@yandex.ru
russian imigration
Сообщения: 34
Зарегистрирован: 02 май 2006, 08:31
Контактная информация:

Teslenko_EA писал(а):Здравствуйте russian imigration.
1. Что значит "...файл ...не открывается...", невозможно открыть архив или не подключается надстройка?
2. "создал переменную ... проверил, переменная равна ... " - а объект (файл), адрес которого содержит переменная, открывался ?
Добрый день, Евгений Teslenko_EA
Спасибо за ответ.
1. теперь все открывается. раньше писало, что файл по данному адресу не найден, то есть не удавалось скачать его.
2. нет, сам файл оставался закрытым. обязательно ли надо его открывать, чтобы прочитать из него данные? от постоянно требует обновлений данных, что не очень удобно (но, в принципе, с этим можно смириться)

Насчет переменной str я понял еще вчера во время попыток отладки. Что-то задумался и создал такую, а потом, увидев у себя код типа "str = str(ячейка в экселе)", сам удивился, как такое написал

ЗЫ. Еще раз спасибо, что подсказываете, в том числе и как общаться. По ходу у меня с этим проблемы :( Не обращаясь ни к кому конкретно, я подразумевал, что ответит тот, кто будет знать ответ...

mc-black, спасибо за ответ, но, в принципе, Ваш код совпал с кодом Teslenko_EA :)
Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

в принципе, Ваш код совпал с кодом Teslenko_EA
Принципиально - согласен, что совпал. Я фактически повторил его код с той только маленькой разницей, что его последний пример НИЧЕГО не должен был сделать, просто присвоил бы значение переменной и на этом все.
На заказ: VBA, Excel mc-black@yandex.ru
Ответить