2016-10-01 4 views
0

Ich habe ein Arbeitsblatt mit vollen Preisangeboten und ein separates Arbeitsblatt, das Änderungen an diesem Preis auf Faktoren wie Bedingung basiert.Klicken Sie auf Hyperlink Wert der Zelle auf verschiedenen Arbeitsblatt geändert, um den Wert der Zelle zu verknüpfen

Da es eine ziemlich große Menge an vollen Preisangeboten gibt, dachte ich, ein einfacher Weg wäre, jeden Preis zu einem Hyperlink zu machen, der in eine Zelle im Arbeitsblatt mit Preisanpassungen kopiert, wo sich die Preise automatisch anpassen.

Ich bin nicht wirklich gut mit VBA, aber ich habe einen grundlegenden Code heraufbeschworen.

Dim ClickCell As String 

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) 
    If Sh.Name = "Book 1" Then 
     If ClickCell = "A3" Then 
      Sheets("Book 2").Range("B2").Value = "Sample Data" 
     End If 
    End If 
End Sub 

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 
    If Sh.Name = "Book 1" Then 
     ClickCell = Target.Address(False, False) 
    End If 

End Sub 

Das Hauptproblem mit diesem Code (Ich werde in der Lage, um die IF-Anweisung auf einen Bereich zu ändern, um die gesamte Spalte enthält, die Preise zu decken), ist, dass ich nicht den Wert der Zelle der enthaltenden holen kann Hyperlink und fügen Sie es in Zelle B2 ein. ActiveCell.Value scheint nur den Wert von B2 zu kopieren (die Zelle, in die der Preis eingefügt werden sollte, wodurch der Wert dieser Zelle im Wesentlichen durch ihn selbst ersetzt wird), und BeforeDoubleClick schien überhaupt nicht für mich zu funktionieren.

Schließlich habe ich diesen Code als Arbeitsbuch-Modul ausgeführt, da es über verschiedene Arbeitsblätter läuft, ist das richtig?

Edit: Gestellt, um Datenproben zur Verfügung zu stellen (ich bin mir nicht sicher, ob das richtig ist).

Sheet1

Sheet2

+0

Fügen Sie einige Daten Beispiele hinzu – user3598756

Antwort

0

Ziel enthält die Zelle, in der der Hyperlink befindet. Sie können den Speicherort von Target.SubAddress abrufen (siehe Kommentare im Code):

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) 
    Dim subAddress() As String 

    If Sh.Name = "Book 1" Then 
     ''.SubAddress is for example 'Book 2'!B2 
     ''Get sheet name by splitting into an array by delimiter ! 
     subAddress = Split(Target.subAddress, "!") 
     ''Trim ' from the first item 
     subAddress(0) = Replace(subAddress(0), "'", "") 

     Sheets(subAddress(0)).Range(Target.subAddress).Value = Target.Range.Value 
    End If 
End Sub 
Verwandte Themen