-2

Я искал существующие вопросы и нашел похожие вопросы и ответы, но ни один из них не отвечал моим требованиям.

У меня есть электронная таблица, в которой я хотел бы иметь возможность щелкать ссылки в одной электронной таблице, чтобы перейти ко второй, поместив значение в ячейку, щелкнув в поле во второй.

Например, первый лист в столбце А будет содержать единицы IT , Finance и Networks

Если щелкнуть любое из этих полей, пользователь должен перейти ко второму листу, называемому "Подразделение", поместив значение ячейки в А1, где я смогу написать, если операторы для заполнения списка подразделений, например, щелчок по IT , поместят IT в ячейка A1, а затем с помощью, если операторы в A3-A5 сделают их как

Security, Support, Development

Затем я бы повторно использовал аналогичный код VB, чтобы, если кто-то щелкнет по имени подразделения, он перенесет их на третий лист, на котором будут показаны детали для этого подразделения.

Надеюсь, что это имеет смысл,

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

1 ответ1

0

На листе 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.

NB

  • При необходимости измените ссылки на ячейки и имя листа в коде.
  • Вы можете сослаться на диапазон ячеек для Copy & Paste .
  • Для этого отредактируйте эту строку ,,
  • Range("A80:A85").Copy Sheet2.Range("A80")

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .