2017-03-11 5 views
-1

Ist es möglich, eine Zelle in einem Blatt zu haben, die nur einige Felder der Zeile, an der ich arbeite, verketten?Verketten bestimmter Felder in der aktuellen Zeile in Excel

Beispiel:

A2 Zelle zeigt verketteten Werte von row 4 Zellen C4 and E4 (das ist die Reihe I gerade arbeite). Wenn ich anfange, an row 5 zu arbeiten, dann zeigt Zelle A2 verkettete Werte von C5 and E5 Zellen. und so weiter ...

Hier ist ein gif visuell ilustraste, was ich brauche ...

enter image description here

+2

Ja, es ist möglich, weil das Excel-Objektmodell Ihnen einen Haken bei der Änderung der Arbeitsblattauswahl gibt - schauen Sie in das 'SheetSelectionChange'-Ereignis des' ThisWorkbook'-Moduls; Der Parameter 'Target' enthält die ausgewählte Zelle, sodass Sie in A2 die gewünschte Ausgabe erstellen können. Ihre Frage ist nicht spezifisch genug, um auf dieser Seite am Thema zu sein; * Frag nicht, ob es möglich ist, probiere es stattdessen * aus, und erzähle uns von genau dem, worauf du gestoßen bist, zeig uns, welchen Fehler du bekommst, wo in deinem Code gib uns einen [mcve], damit wir replizieren können der Fehler, ohne das gesamte Arbeitsbuch zu Hause zu haben. Prost! –

+1

Sie benötigen VBA. [Dieser Blog] (https://teylyn.com/2010/08/22/let-your-fingers-do-the-walking-blog/) hat einen ähnlichen Ansatz für ein Diagramm. Sie können den Code erneut verwenden und eine Formel anstelle eines Diagramms erstellen. – teylyn

Antwort

1

Ja Sie tun können, es das Arbeitsblatt Selection Ereignis verwenden. Lerne meinen Code unten ...!

Option Explicit 

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Dim r As Range 
    Dim myRange As Range: Set myRange = Range("A1") 
    Const sumRow = 3 

    Set r = Range(Target.Offset(0, 1).Address & ":" & Target.Offset(0, sumRow).Address) 

    myRange = conCatRangeValue(r) 
End Sub 

Private Function conCatRangeValue(_ 
    targetRange As Range, _ 
    Optional ByVal sep As String = " ") As String 

    Dim r As Range 
    Dim result As String 
    For Each r In targetRange 
     result = result + sep + r.Value 
    Next r 

    conCatRangeValue = result 
End Function 

Versuchen Sie es und ändern Sie es, um Ihre Bedürfnisse zu erfüllen.

+0

Laden Sie die Arbeitsmappe herunter, die ich mit diesem Code hier erstellt habe https://1drv.ms/x/s!AgJ535NvXxIBkxp6lcefyJmC_pwF –

Verwandte Themen