2016-07-13 22 views
0

Ich verkette 4 verschiedene formelbasierte Spalten in einem mit VBA (um die Formatierung zu ändern, während noch verketten). Der verkettende VBA-Code funktioniert, aber wenn die vier einzelnen Spalten die neuen Informationen aktualisieren und abrufen, ändert sich die verknüpfte Spalte nicht.automatisch VBA verketten Spalte aktualisieren, wenn geändert

Mein verketteten Code ist dies, und es liegt in der Spalte D oder 4:

Sub joint1() 

ActiveSheet.Range("a2", ActiveSheet.Range("a2").End(xlDown)).Select 
Row = 2 
Col = 4 
For Each Cell In Selection 
AE = Cells(Row, Col + 15) 
Name = Cells(Row, Col + 9) 
SC = Cells(Row, Col + 16) 
PM = Cells(Row, Col + 10) 

Cells(Row, Col) = Name & Chr(10) & "(" & AE & " - " & SC & ")" & Chr(10) & PM & " - PM" 

With Cells(Row, Col) 
    .ClearFormats 
    .Characters(1, Len(Name)).Font.Bold = True 

End With 
Row = Row + 1 
Next 
End Sub 

Wenn Sie wissen, wie eine Funktion hinzuzufügen, mein Problem zu helfen, wäre ich sehr dankbar!

+0

Versuchen Sie, 'Option Explicit' zum Start Ihres Moduls hinzuzufügen. Dies wird Ihr Problem nicht direkt lösen, aber es wird Ihnen zeigen, wo Dinge schief gehen könnten. Ich habe Ihren Code ausprobiert und es hat überhaupt nicht funktioniert, alle Ihre Variablen werden vom Typ variant sein, und die Dinge werden möglicherweise nicht wie erwartet kopiert. –

Antwort

0

Versuchen Sie folgendes:

Option Explicit 

Sub joint1() 
Dim iRow As Long 
Dim iCol As Long 
Dim rng As Range 
Dim rngSelect As Range 
Dim Name As String 

Set rngSelect = ActiveSheet.Range("a2", ActiveSheet.Range("a2").End(xlDown)) 
iRow = 2 
iCol = 4 

For Each rng In rngSelect 
    Name = Cells(iRow, iCol + 9) 
    Cells(iRow, Col) = "=M" & iRow & Chr(10) & " & ""("" & S" & iRow & " & "" - "" & T" & iRow & " & "")"" &" & Chr(10) & "N" & iRow & " & ""-PM""" 
    With Cells(iRow, iCol) 
     .ClearFormats 
     .Characters(1, Len(Name)).Font.Bold = True 
    End With 
    iRow = iRow + 1 
Next 

End Sub 

Dieser Code erstellt eine Formel in jeder Zelle, anstatt nur die Werte zu kopieren.

Der Job könnte wahrscheinlich genauso gut mit einer Excel-Formel durchgeführt werden. Die Formatierung funktioniert nicht mit meiner Version von Excel (2007).

+0

Danke, das funktioniert und verwandelt es in eine Formel. Der Punkt von mir, der VBA verwendet, war, in der Lage zu sein, das unterschiedliche Format für jede der Spalten zu haben, die ich zu einem verkette. Ich habe es ursprünglich mit einer normalen Formel wie diesem gemacht, aber herausgefunden, dass es in VBA gemacht werden musste, um die Ergebnisse zu erhalten, die ich brauchte. Zum Beispiel möchte ich nur die Name-Spalte fett, nicht die ganze Zelle. Wenn Sie wissen, wie Sie das beheben können, wäre das eine extreme Hilfe! Vielen Dank. –

Verwandte Themen