0
  • MAIN、SUB1、SUB2 という名前の Excel シートに 3 つのタブがあります。

  • SUB1 には、値 TC1、TC2、...TC30 を持つ TC 列が含まれています。

  • SUB2 には、値 TC31、TC32、...TC90 を持つ TC 列が含まれています。

  • MAIN タブには、値 TC1... TC90 の TC 列が含まれています。

*ユーザーがTC1(SUB1のTC列の)をクリックすると、ハイパーリンクがMAINのTC列のTC1に移動する(およびその逆)ように、普遍的な式が必要です。

4

1 に答える 1

0

このコードを試してください。ThisWorkbookモジュールに配置する必要があります。

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Dim wsTarget As Worksheet
    If Left(Target, 2) <> "TC" Then Exit Sub

    On Error GoTo ErrorHandler1
    If UCase(Left(Sh.Name, 3)) = "SUB" Then
        Set wsTarget = Sheets("Main")
    Else
        Set wsTarget = Sheets("SUB" & _
            IIf(CInt(Mid(Target.Value, 3)) <= 30, 1, 2))
    End If
    wsTarget.Activate
    On Error GoTo ErrorHandler2

    wsTarget.Cells.Find(Target.Value, wsTarget.Range("A1")).Activate
    Exit Sub

ErrorHandler1:
    MsgBox "Cannot identify target sheet from " & Target
    Exit Sub
ErrorHandler2:
    MsgBox "Cannot find " & Target & " in sheet " & wsTarget.Name
End Sub
于 2013-03-04T14:11:39.840 に答える