2013-05-30 5 views
-1

Я создал форму с несколькими командами, которые открывают специфические рабочие листы. Проблема в том, что когда я открываю файл excel с помощью кнопки команды, если форма не скрыта, я не могу щелкнуть по открытому файлу (его не активировать)Открыть лист excel из формы

Даже если я скрываю форму, мне нужно чтобы вручную перейти к этому файлу с панели задач, он не активируется.

Проблема заключается в том:

  1. Я не хочу, чтобы моя форма будет скрыта, потому что я хочу, чтобы пользователь мог открыть несколько листов
  2. Раскрытая лист не будет активизироваться.

Вот мой код:

Private Sub CommandButton1_Click() 
    Dim Wb As Excel.Workbook 
    Set Wb = Workbooks.Open(Filename:="D:/power system design/foo.xlsx", ReadOnly:=False) 
    UserForm1.Hide 
    Wb.Activate 
    Wb.Sheets("Sheet1").Cells(1, 1).Select 
End Sub 
+1

Несколько вариантов, основанных на том, чего вы хотите достичь, но я бы предложил исследовать свойство ShowModal вашей формы. И, возможно, создание нового экземпляра Excel.Application, чтобы открыть файл. –

+0

@ DanielCook Извините, но я не знаю свойства ShowModal формы. Есть ли альтернатива «быстрого доступа», потому что мне нужно быстро освободить лист. –

ответ

2

Это быстрый способ сделать то, что вы сказали, что хотел сделать. Это может быть не лучшим образом, но вы должны быть в состоянии отказаться от его и бежать с ним:

Private Sub CommandButton1_Click() 
    Dim xls As Excel.Application 
    set xls = new Excel.Application 
    xls.Workbooks.Open "D:/power system design/foo.xlsx", ,False 
    xls.Visible = true 
End Sub 

или если вы хотите работать с открытой книгой

Private Sub CommandButton1_Click() 
    Dim xls As Excel.Application 
    Dim wb as Excel.Workbook 
    set xls = new Excel.Application 
    set wb = xls.Workbooks.Open(Filename:="D:/power system design/foo.xlsx", ReadOnly:=False) 
    xls.Visible = true 
End Sub 

Это приведет к лист открывается в новом окне приложения Excel.

+0

Он говорит о синтаксической ошибке для 'xls.Workbooks.Open (Имя файла: =" D:/power system design ", ReadOnly: = False)' –

+0

Он работает, если я добавляю 'Dim wb как Excel.workbook', а затем' Set wb = xls.Workbooks.Open (Имя файла: = "D:/power system design", ReadOnly: = False) ' –

+0

А, правильно. Из-за скобки VBA пытается использовать возвращенный объект. Я обновлю код, чтобы не ошибка. –

Смежные вопросы