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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2011, 15:29   #11
Othergirl
Пользователь
 
Регистрация: 24.10.2011
Сообщений: 18
По умолчанию

Код:
                    Dim wbBook As Workbook                   'if open, do not open again
                    On Error Resume Next
                    Set wbBook = Workbooks("ReformTech_Number_Register.xlsx")
                    If wbBook Is Nothing Then
                    Workbooks.Open Filename:=iArchive, ReadOnly:=True
                    Else
                    wbBook.Parent.Activate
                    MsgBox "book"
                    End If
Вот то,что мне примерно нужно, но оно не работает,
ошибки не выдает, но книгу не активирует
Othergirl вне форума Ответить с цитированием
Старый 25.10.2011, 15:39   #12
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
> нужно перебором всех открытых книг проверить их .Path, т.к. могут быть много книг с одинаковым именем, но лежать в разных каталогах

В Excel - не могут!
Это как?
Я, например, рассчитываю на книгу
C:\tmp\1\Primer.xls
а юзер открыл
C:\tmp\2\Primer.xls
Теперь кодом обнаруживаем, что книга Primer.xls открыта, делаем дело, сохраняем.
Я завтра открываю
C:\tmp\1\Primer.xls
и где же вчерашняя работа? Кто виноват?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 25.10.2011, 16:06   #13
Othergirl
Пользователь
 
Регистрация: 24.10.2011
Сообщений: 18
По умолчанию

Пожалуйста дайте кто-нибудь короткий ответ, как же все-таки книгу активировать. (на этом мой первый макрос будет завершен-УРА)
Othergirl вне форума Ответить с цитированием
Старый 25.10.2011, 16:12   #14
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Код:
wbBook.Parent.Activate
Уберите Parent.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 25.10.2011, 16:13   #15
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код:
wbBook.Activate
опередил...
Зато мой ответ как заказывали - короткий
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 25.10.2011, 16:15   #16
Othergirl
Пользователь
 
Регистрация: 24.10.2011
Сообщений: 18
По умолчанию

Убирала, не работает
Нашла такой вариант -Workbooks("ReformTech_Number_Regist er.xlsx").Activate

Только теперь такой вопрос
можно ли активировать книгу, но чтобы она не появлялась на экране, а оставалась свернутой, чтобы было всегда видно только книгу, в которой записан макрос
Othergirl вне форума Ответить с цитированием
Старый 25.10.2011, 16:20   #17
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

> Это как?

Игорь, я имел в виду, что в одном приложении Excel нельзя одновременно открыть две книги с одним именем из разных папок, т.е.
C:\tmp\1\Primer.xls
C:\tmp\2\Primer.xls

exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 25.10.2011, 16:21   #18
Othergirl
Пользователь
 
Регистрация: 24.10.2011
Сообщений: 18
По умолчанию

Код:
'Sub Test3 (fill out names/description from archive)
            ActiveSheet.Range("C6").Select
30          iArchive = "G:\Archive\ReformTech_Number_Register.xlsx"
            iAR = "Article register"
            iDR = "Document register"
            vValue = ActiveCell.Value

                    Dim wbBook As Workbook                   'if open, do not open again
                    On Error Resume Next
                    Set wbBook = Workbooks("ReformTech_Number_Register.xlsx")
                    If wbBook Is Nothing Then
                    Workbooks.Open Filename:=iArchive, ReadOnly:=True
                    Else
                    Workbooks("ReformTech_Number_Register.xlsx").Activate
                    'MsgBox "book"
                    End If
                       
                       
                      Dim cForFind As Range
                       If vValue < 500000 Then                                              'works
                            Worksheets(iDR).Select
                            Else
                            Worksheets(iAR).Select                                        'works
                        End If
                   Set cForFind = Range("a1:a25000").Find(vValue, , xlValues, xlPart)
                        If cForFind Is Nothing Then
                            ThisWorkbook.Activate
                            MsgBox "Art/Doc not found", vbExclamation
                            ActiveCell.Offset(0, 3) = "DOES NOT EXIST IN RT NUMBER REGISTER"
                            ActiveCell.Offset(0, 2).Interior.ColorIndex = 39
                            ActiveCell.Offset(0, 3).Interior.ColorIndex = 39
                        Else
                            ThisWorkbook.Activate
                            ActiveCell.Offset(0, 2) = cForFind.Offset(0, 1)
                            ActiveCell.Offset(0, 3) = cForFind.Offset(0, 2)
                        End If
        Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) ' cycle until first two space cell happens
        ActiveCell.Offset(1, 0).Select
        GoTo 30
        Loop
    'Exit Sub ' Test3
       
       Application.DisplayAlerts = False
       Workbooks("ReformTech_Number_Register.xlsx").Close
       Application.DisplayAlerts = True
  
        
End Sub 'Sub VKI
В общем я знаю, что активация книги значительно увеличивает время просчета,
но знаний моих на большее не хватило
может если у кого есть время посмотрите?
это часть программы
все работает, только вторая книга мелькает постоянно
Первая - это соответственно та,в которой макрос написан
Othergirl вне форума Ответить с цитированием
Старый 25.10.2011, 16:33   #19
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

поставьте в самое начало кода
application.screenupdating=false
- мигать будет только в панели (это тоже можно убрать showindowsintaskbar=false)
Потом в конце верните назад (хотя application.screenupdating не обязательно - само покажется )
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 25.10.2011, 16:37   #20
Othergirl
Пользователь
 
Регистрация: 24.10.2011
Сообщений: 18
По умолчанию

поставила, все равно мигает, каждый раз, когда окно iArchive становится активным
Othergirl вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA excel не удается закрыть и сохранить книгу без возникновения диалогового окна Tvilla Помощь студентам 2 28.06.2012 11:01
Сохранение листа как книгу и отправка его на почту. NoLL Microsoft Office Excel 5 23.11.2010 18:14
Закрыть сохраненную книгу segail Microsoft Office Excel 13 31.03.2010 11:31
Закрыть открыть книгу segail Microsoft Office Excel 14 07.10.2009 18:22
Можно ли создать гостевую книгу, без PHP? Лукманов Александр HTML и CSS 13 05.01.2009 15:39