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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2010, 12:28   #1
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию условие для файлов Excel

Здравствуйте.
Можно ли создать условие, и как, для файлов Excel
Код:
Private Sub CommandButton1_Click()
    If a = 1 And b = 1 Then a = 2
End Sub
a = 1 ' Если файл a.xls открыт
b = 1 ' И открыт b.xls
a = 2 ' То закрыть файл a.xls
segail вне форума Ответить с цитированием
Старый 29.03.2010, 12:47   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
Private Sub CommandButton1_Click()
Dim wb As Workbook
On Error Resume Next
Set wb = Application.Workbooks("11.xls")
If wb Is Nothing Then
a = 0
Err.Clear
Else
a = 1
End If

Set wb = Application.Workbooks("12.xls")
If wb Is Nothing Then
b = 0
Err.Clear
Else
b = 1
End If
If a = 1 And b = 1 Then Workbooks("11.xls").Close



End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 29.03.2010, 13:26   #3
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

А если по отношению к открытому файлу 12.xlc могут быть еще 4 файла (13,14,15,16)
Они не могут быть открыты одновременно по отношению к файлу 12, они могут только быть в паре с файлом 12. Как их внедрить в данный код?
Создавать код для каждого файла?

Последний раз редактировалось segail; 29.03.2010 в 13:34.
segail вне форума Ответить с цитированием
Старый 29.03.2010, 13:41   #4
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Такой вариант может быть?
Код:
Private Sub CommandButton1_Click()
    Dim wb As Workbook
    On Error Resume Next
    Set wb = Application.Workbooks("11.xls")
    Set wb = Application.Workbooks("13.xls")
    Set wb = Application.Workbooks("14.xls")
    Set wb = Application.Workbooks("15.xls")
    Set wb = Application.Workbooks("16.xls")
        If wb Is Nothing Then
            a = 0
            Err.Clear
        Else
            a = 1
        End If

        Set wb = Application.Workbooks("12.xls")
            If wb Is Nothing Then
                b = 0
                Err.Clear
            Else
                b = 1
            End If
                If a = 1 And b = 1 Then Workbooks("11.xls").Close
                If a = 1 And b = 1 Then Workbooks("13.xls").Close
                If a = 1 And b = 1 Then Workbooks("14.xls").Close
                If a = 1 And b = 1 Then Workbooks("15.xls").Close
                If a = 1 And b = 1 Then Workbooks("16.xls").Close
End Sub
segail вне форума Ответить с цитированием
Старый 29.03.2010, 13:43   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Конечно,либо как я предложил для каждой книги.
Или путем опять же перебора открытых книг на сравнение с нужным именем
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 29.03.2010, 13:44   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Не правильно,только так

Код:
    Set wb1 = Application.Workbooks("11.xls")
    Set wb 2= Application.Workbooks("13.xls")
    Set wb3 = Application.Workbooks("14.xls")
    Set wb4 = Application.Workbooks("15.xls")
    Set wb 5= Application.Workbooks("16.xls")
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 29.03.2010, 13:50   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Сколько предполагается закрывать книг,можно упростить если знать более конкретно
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 29.03.2010, 14:11   #8
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

11,13,14,15,16
Как я уже говорил... Они не могут быть открыты одновременно по отношению к файлу 12, они могут только быть в паре с файлом 12.

Не в тему:
Если для объекта ComboBox просто действие клик по объекту, или DblClick является самым альтернативным кликом? По полю объекта идет двойной клик, а по стрелке можно совершить один клик, почему тогда Dbl ?
segail вне форума Ответить с цитированием
Старый 29.03.2010, 14:20   #9
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

При чем здесь альтернатива.
На разные события вы вешаете разные свои процедуры.
При клике надо сделать это.
При двойном-то то
А при Стрелочке что то еще
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 29.03.2010, 14:27   #10
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Объект своеобразный не могу привыкнуть.

Значит при выборе значения, и выполнения какого ли ба кода
Код:
Private Sub ComboBox1_Change()
'...
End Sub
изначально ,будет выполняться код события
Код:
Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) 'Стрелочка
'...
End Sub

Последний раз редактировалось segail; 29.03.2010 в 14:36.
segail вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение двух файлов Excel (поячеечно) для выявления отличий IEEE Microsoft Office Excel 8 21.04.2010 15:45
Условие для файлов Nemesisking Общие вопросы Delphi 11 30.01.2009 09:20
Условие на открытие файла Excel Hant Microsoft Office Excel 2 07.05.2008 13:36
Макрос в Excel для обработки группы файлов ad_sum Microsoft Office Excel 1 29.12.2007 16:56