2017-02-20 4 views
0

Привет, я все еще новичок в мире excel macro vba, поэтому мне нужна помощь с простым кодированием.Может получить доступ к листам, пока макрос работает, пока я не нажму кнопку меню

Я делаю меню с макросом, поэтому, щелкнув его, он перейдет на листы и вернется к кнопке меню, но проблема в том, что я не могу получить доступ к листам или ячейке, пожалуйста, помогите мне с кодировкой.

ниже кодирование я сделал

Private Sub CommandButton15_Click() 

Application.Goto Worksheets("14").Range("A1") 
Unload Me ' unloads the userform 

UserForm3.Show 

End Sub 

и для UserForm3

Private Sub CommandButton1_Click() 

Sheets("MENU").Select 

UserForm3.Hide 

End Sub 

, что кодирование мне нужно использовать, чтобы я мог получить доступ к листу и ячейке, а макрос все еще там?

+0

Возможный дубликат [VBA код не прыгать в клетке] (http://stackoverflow.com/questions/42108014/vba-code-does-not-jump-to-cell) – R3uK

+0

@ R3uK Thnx для ссылка, но это не ответ на мой вопрос о доступных листах, пока макрос бежит –

+0

Ваша проблема непонятна ... Что вы подразумеваете под * доступными листами *? У вас есть ошибка? Какое сообщение и на какой строке? – R3uK

ответ

0

Вам нужно отображать UserForm в режиме Modeless с:

UserForm3.Show 0 
'Or 
UserForm3.Show False 
'Or 
UserForm3.Show vbModeless 
+0

ОК, тогда позвольте мне попробовать. –

+0

wow UserForm1.Show vbModeless работает, хорошая информация tnx R3uK. Я все еще новичок должен узнать больше. LOL ....... я могу получить доступ к листу, но свитки не работают какое-либо решение? –

+0

@MikoIndra: Добро пожаловать! ;) Примите ответ, поскольку он решил вашу проблему! ;) – R3uK

0

Выберите один из ваших рабочих листов для использования в качестве эталона; скажем, имя рабочего листа = "XXX". Выберите ячейку в «XXX», скажем, ячейку «B2». Добавьте ниже код в свой макрос в точке, где вы хотите, чтобы пользователь мог получить доступ к листам/ячейкам, чтобы пользователь мог вводить или делать то, что ему нужно. Как только пользователь выполнит свою работу, он перейдет на рабочий лист «XXX» и наберет слово «END» в ячейке «B2», чтобы возобновить работу макроса.

Do While Worksheets("XXX").Range("B2") <> "END" 
    t1 = Now 

    While Now < t1 + TimeSerial(0, 0, 1) 
     DoEvents 
    Wend 

    If UCase(Worksheets("XXX").Range("B2")) = "END" Then 
     Exit Do 
    End If 
Loop 
+0

Ничего себе ..... это новое для меня, я создам новую книгу, чтобы я мог попробовать ваше предложение @Ping Pang Poo icu tnx ...... я скоро обновлю результаты –