Я просмотрел существующие вопросы и нашел похожие вопросы и ответы, но ни один из них не соответствует моим требованиям.
У меня есть электронная таблица, в которой я хочу иметь возможность нажимать на ссылки в одной таблице, чтобы переходить ко второй, помещая значение из ячейки, по которой нажата кнопка мыши, в поле во второй таблице.
Например, первый лист в столбце A будет содержать единицы измерения IT
, Finance
, иNetworks
Щелчок по любому из этих полей должен перенаправить пользователя на второй лист под названием «Подразделение», где я помещаю значение ячейки в A1, где я затем могу написать операторы if для заполнения списка подразделений, например, щелчок по IT
поместит значение IT
в ячейку A1, а затем с помощью операторов if в A3-A5 они будут преобразованы в
Security, Support, Development
Затем я бы повторно использовал аналогичный код VB, чтобы при нажатии на название подблока он переходил на третий лист, на котором будут показаны сведения об этом подблоке.
Надеюсь, это имеет смысл.
Я совсем новичок в VBA, поэтому, пожалуйста, укажите, где мне следует разместить код (например, на вкладке, при щелчке правой кнопкой мыши, при просмотре кода или в каком-то другом месте)
решение1
На Листе 1 нажмите ALT+F11
, чтобы открыть редактор VB. Скопируйте и вставьте этот код как стандартный модуль.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox "Range " & Target.Address & " was double clicked"
On Error Resume Next
Dim xRg As Range
Set xRg = Application.Selection
Range("A80").Copy Sheet2.Range("A80")
Application.Goto Worksheets("Sheet2").Range("A80"), True
End Sub
Как это работает:
- Введите данные в ячейку
A80
и дважды щелкните по ней. - Вы увидите окно сообщения, в котором нужно подтвердить, какая ячейка была нажата.
- Нажмите
OK
кнопку. - Excel извлечет
Copy & Paste
содержимоеA80
и поместит указатель ячейки в ячейкуA80
листа 2.
Примечание.
- При необходимости измените ссылки на ячейки и имя листа в коде.
- Вы можете сослаться на Диапазон ячеек
Copy & Paste
. - Для этого отредактируйте эту строку,
Range("A80:A85").Copy Sheet2.Range("A80")