Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка при обращении к открытым рабочим книгам в Excel 2007 / 7 сообщений из 7, страница 1 из 1
21.12.2015, 01:55
    #39132693
Olga_p_123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к открытым рабочим книгам в Excel 2007
Есть небольшая программа (макрос) в Excel.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
[/SRC]
Sub spravka()

n = Range(Workbooks("реестр").Worksheets(1).Cells(4, 1), Workbooks("реестр").Worksheets(1).Cells(4, 1)).CurrentRegion.Rows.Count

MsgBox (n)

i = 15
Do While Workbooks("решения").Worksheets(1).Cells(i, 2) <> ""
For j = 5 To n + 4
If Workbooks("реестр").Worksheets(1).Cells(j, 5) = Workbooks("решения").Worksheets(1).Cells(i, 2) Then
Workbooks("реестр").Worksheets(1).Cells(j, 5).Interior.ColorIndex = 6
Workbooks("справка").Worksheets(1).Cells(5, 2) = Workbooks("реестр").Worksheets(1).Cells(j, 5)
...
Workbooks("справка").Worksheets(1).PrintOut 1, 1
End If
Next j
i = i + 1
Loop


End Sub
[SRC vba]


Программа берет данные из одной открытой рабочей книги и вставляет в другую открытую рабочую книгу. На 2003 офисе программа работает нормально, а под Excel 2007 выдается ошибка:
Subscript out of range
ругается на строку программы:
n = Range(Workbooks("реестр").Worksheets(1).Cells(4, 1), Workbooks("реестр").Worksheets(1).Cells(4, 1)).CurrentRegion.Rows.Count
Если эту строку удаляешь, то ругается на следующую строку, где программа обращается не к текущей рабочей книге

похоже, что он не видит открытые книги и отказывается с ними работать. Как решить эту проблему?
...
Рейтинг: 0 / 0
21.12.2015, 01:58
    #39132694
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к открытым рабочим книгам в Excel 2007
Каким образом открываются книги?
Вероятно они открываются в разных процессах экселя.
...
Рейтинг: 0 / 0
21.12.2015, 07:05
    #39132727
Olga_p_123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к открытым рабочим книгам в Excel 2007
Как ни открывай один черт ошибка
...
Рейтинг: 0 / 0
21.12.2015, 08:31
    #39132748
MrVoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к открытым рабочим книгам в Excel 2007
Olga_p_123,

Наверное, так?

Код: vbnet
1.
2.
3.
With Workbooks("реестр").Worksheets(1)
      n = .Range(.Cells(4, 1), .Cells(4, 1)).CurrentRegion.Rows.Count
End With
...
Рейтинг: 0 / 0
21.12.2015, 12:15
    #39132945
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к открытым рабочим книгам в Excel 2007
Olga_p_123,

Код: vbnet
1.
Workbooks("решения")


не совсем правильно. Если не указывать расширение файла, то такое обращение приведет к ошибке на ПК, на котором в настройках ОС Windows(Панель управления -Параметры папок -вкладка Вид -Скрывать расширения для зарегистрированных типов файлов) указано скрывать расширения.
Поэтому правильно будет так:
Код: vbnet
1.
Workbooks("решения.xls")


естественно, расширение надо указать именно этой книги(может это .xlsx, .xlsm и т.д.)
...
Рейтинг: 0 / 0
21.12.2015, 12:16
    #39132948
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к открытым рабочим книгам в Excel 2007
The_Pristуказано скрывать расширенияОчепятка :)
к ошибке приведет если не указано скрывать расширения
...
Рейтинг: 0 / 0
22.12.2015, 04:34
    #39134023
Olga_p_123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к открытым рабочим книгам в Excel 2007
The_Prist, большое спасибо. Поставила птицу и все получилось.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка при обращении к открытым рабочим книгам в Excel 2007 / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]