2013-03-06 3 views
4

Сообщите нам, если сценарий выполним: пользователь нажимает на ячейку Sheet1!A1 с кнопкой «Go Details», и он перемещает его до Sheet2!B1, где он может нажать кнопку «Назад» в той же строке, чтобы вернуться к Sheet1!A. из. Точно так же он может щелкнуть ячейку Sheet1!J1 с кнопкой «Go Details», которая перемещает его в тот же самый номер Sheet2!B1, но на этот раз кнопка «Назад» возвращает его обратно в Sheet1!J, так что он запоминает позицию пользователя.Как создать кнопку «Назад» в Excel для перемещения пользователя в том месте, откуда он появился?

ответ

3

Вставьте этот код в ThisWorkbook рутинного:

Private rngLastLink As Range 

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) 
    If UCase(Target.Parent.Value) = "BACK" Then 
     If rngLastLink Is Nothing Then 
      Application.EnableEvents = False 
      Target.Follow 
      Application.EnableEvents = True 
     Else 
      rngLastLink.Worksheet.Activate 
      rngLastLink.Activate 
     End If 
    Else 
     Set rngLastLink = Target.Parent 
    End If 
End Sub 

Он будет хранить клетки от любого нажатия гиперссылки, не называется «Назад». Если нажать «Назад», он снова активирует эту ячейку.

+0

Это работает, именно то, что мне нужно! Спасибо! – YMC

0

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

Скопируйте этот код

Sub Button1_Click() 
Worksheets("sheet2").Activate 
End Sub 

в макро

sheet2 изменения в зависимости от обстоятельств для сценария.

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) 
Sheets.Select 
ActiveCell.EntireRow.Select 
ActiveSheet.Select 

будет синхронизировать всю строку между рабочими листами - срабатывает только при изменении рабочих листов ...

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target 
As Range) 
Sheets.Select 
ActiveCell.EntireRow.Select 
ActiveSheet.Select 
End Sub 

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

+0

Я не вижу, как это связано с моей задачей создать архивную кнопку с динамическим адресом To – YMC

+0

держать их отдельно, используйте кнопку назад и синхронизации строк ... – Hituptony

+0

Где кнопку назад? Мне нужна кнопка «Назад», чтобы войти в строку пользователя. И что вы подразумеваете под синхронизацией строк? – YMC

3

Если пользователь выбирает параметры Excel> Панель быстрого доступа> Все команды. Добавьте «Назад» и «Foward», они будут иметь назад и вперед навигацию после прыгающих ссылок, как на веб-странице.

+0

Не работает для меня, к сожалению, кнопка должна быть в строке в соответствии со сценарием, который я описал, а не на панели инструментов, мы не можем управлять панелью пользователей. Однако можно ли имитировать этот щелчок кнопкой Back с помощью макроса VB? – YMC

+0

Я не думаю, что кнопки назад/вперед будут работать так, как в Excel, по крайней мере, это не возвращается к предыдущему выбору. :-(Хотя я действительно хотел бы, чтобы это была стандартная функция в Excel. –

+1

Попробуйте, она работает для меня. Отвечает мне на последнюю ячейку, связанную с тем же листом или по-разному. Это, по крайней мере, в Excel 2010 –

0

Я использовал стрелку Alt-Left, чтобы вернуться назад.

Sub GoBackToWhereverYouCameFrom() 
    Application.SendKeys ("%{LEFT}") 
End Sub 
Смежные вопросы