Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2015, 17:05   #1
DarkJoker
Пользователь
 
Регистрация: 12.08.2014
Сообщений: 25
По умолчанию Записать данные из файла в ячейку

Здравствуйте помогите с макросом пожалуйста
ЗАДАЧА:
с помощью стороннего excel(допустим 1.xlsm) внести данные из 1.txt на рабочем столе в ячейку 2.xlsm в 2-й лист по названием "Счёт" в ячейку B7
и запаролить лист "Счёт"
DarkJoker вне форума Ответить с цитированием
Старый 10.10.2015, 17:14   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
sub Макрос()
  txt = ReadTXTfile(CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\1.txt")
  workbooks("2.xlsm").worksheets("Счёт").range("B7") = txt
  workbooks("2.xlsm").worksheets("Счёт").protect rnd
end sub

Function ReadTXTfile(ByVal filename As String) As String
    Set fso = CreateObject("scripting.filesystemobject")
    Set ts = fso.OpenTextFile(filename, 1, True): ReadTXTfile = ts.ReadAll: ts.Close
    Set ts = Nothing: Set fso = Nothing
End Function
EducatedFool вне форума Ответить с цитированием
Старый 10.10.2015, 19:18   #3
DarkJoker
Пользователь
 
Регистрация: 12.08.2014
Сообщений: 25
По умолчанию

выдало ошибку
я подозреваю из-за того что в xlsm несколько листов
1-й 2-й(счёт) 3-й и 4-й
DarkJoker вне форума Ответить с цитированием
Старый 10.10.2015, 19:31   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

ошибка 9?
"Subscript out of range"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 10.10.2015, 19:31   #5
DarkJoker
Пользователь
 
Регистрация: 12.08.2014
Сообщений: 25
По умолчанию

да вы правы
DarkJoker вне форума Ответить с цитированием
Старый 10.10.2015, 19:36   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

я подозреваю, что в файле лист называется "счет", а не "счёт" (у меня бы он точно был назвал "счет")

для человеческого мозга нет разницы, а для программы это все равно, что назвать лист "Вася", а обращаться к нему по имени "счёт"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 10.10.2015, 19:42   #7
DarkJoker
Пользователь
 
Регистрация: 12.08.2014
Сообщений: 25
По умолчанию

переименовал как в коде, всё равно ошибка 9
указывает сюда
Workbooks("2.xlsm").Worksheets("Счё т").Range("B7") = txt

Последний раз редактировалось DarkJoker; 10.10.2015 в 20:21.
DarkJoker вне форума Ответить с цитированием
Старый 10.10.2015, 20:24   #8
DarkJoker
Пользователь
 
Регистрация: 12.08.2014
Сообщений: 25
По умолчанию

ваще не хочет никак
поменял путь, название файла, название листа, до фени
DarkJoker вне форума Ответить с цитированием
Старый 10.10.2015, 21:01   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

кто-то из обьектов отсутствует
или
в Екселе не открыта книга 2.xlsm
или
в указанной книге нет листа с названием Счёт

кроме того...
зачем нужен одноразовый макрос?
допустим он сработал и что? второй раз на лист Счёт он уже ничего не запишет. лист защищен и запаролен))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 10.10.2015, 21:09   #10
DarkJoker
Пользователь
 
Регистрация: 12.08.2014
Сообщений: 25
По умолчанию

так.... вы что хотите сказать что нужно открыть 2.xlsm и потом уже запускать макрос из 1.xlsm? О_О
DarkJoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как считать данные с файла и записать в массив? lord007 Visual C++ 0 05.05.2015 22:57
Ввести из текстового файла данные для массива структур, записать их в типизированный файл GalaiAnton Общие вопросы Delphi 0 25.03.2015 16:21
не получается записать данные из файла в массив построчно monnzz Общие вопросы C/C++ 0 14.02.2013 21:45
Записать в одну ячейку данные? Stem79 Microsoft Office Excel 21 06.02.2013 00:18
как записать формулу в ячейку? Оленька______87 Microsoft Office Excel 2 13.06.2010 20:46