Frage : Excel VBA - Zellen in jeder anderen Spalte in der Strecke verketten

Die angebrachte Akte hat einige Spalten, in denen ich alle Textspalten verbinden möchte (jede zweite Spalte, die mit B) und die Resultate in eine Spalte auf Sheet1 einzusetzen, z.B.
Hard-coded mit einer Formel beginnt, würde es recht einfaches =concatenate sein (b2, „ | “, d2, „ | “, F2, „ | “, h2) mit dem Rohrsymbol „ | “, jedes Textfeld teilend.  Oder es konnte =b2 gerade sein u. „ | “ u. d2… etc.  Die Formel hinunter das page.

I dann kleben kann nicht herausfinden, wie man dies in VBA though.
I denken tut, dass Sie a für… jedes verwenden und die Spalten herüber zählen müssen, um (xlToLeft) dann Schritt 2 für jedes andere column.
Then zu beenden…?  jede Zelle wird dem folgenden bis das Ende der Strecke hinzugefügt. ???
For, was Grund nicht die Syntax für die Strecken- und Zellenansammlung (und die Logik herüber von zählen und die Variablen dann von beziehen) Richtung oder Arbeit für me.
Thanks für Ihre Hilfe bildet!
Attachments:
Zellen in jedem anderen column
verketten

Antwort : Excel VBA - Zellen in jeder anderen Spalte in der Strecke verketten

Dieses versuchen:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
Sub ConcatenateText ()
    
    lastRow als lang verdunkeln
    lastCol als lang verdunkeln
    tempLastRow als lang verdunkeln
    I als lang verdunkeln 'erhöhen Reihen
    P als lang verdunkeln 'erhöhen Spalten
    conValue als Schnur verdunkeln
    Schwaches conSheet als Schnur 'verketten Blatt-Namen
    Schwaches destSheet als Schnur-'Bestimmungsort-Blatt-Name
    
    destSheet = „Sheet1“
    conSheet = „surveyText“

    lastRow = Blätter (conSheet). Strecke („A“ u. Rows.Count). Ende (xlUp). Reihe
    lastCol = Blätter (conSheet). Strecke (Columns.Count u. „: 1“). Ende (xlToRight). Spalte
    
    Für i = 2 zum lastRow
        Für p = 2 zu lastCol Schritt 2
            conValue = conValue u. „ | “ U. Blätter (conSheet). Zellen (i, P). Wert
        Zunächst
        tempLastRow = Blätter (destSheet). Strecke („A“ u. Rows.Count). Ende (xlUp). Reihe + 1
        Blätter (destSheet). Zellen (tempLastRow, 1).Value = recht (conValue, Len (conValue) - 3)
        conValue = ""
    Zunächst I
    
    MsgBox „getan!“
    
Enden-Unterseeboot
Weitere Lösungen  
 
programming4us programming4us