Feldtransformation funktioniert nicht
#1
Hallo VBA Gemeinde,

ich habe eine kleines VBA Programm geschrieben. fFeld1 speichert aus der Spalte A  leere und nichtleere Werte ab.
fFeld2 wiederum speichert alle Werte aus fFeld1 ab, die nichtleer sind. Am Ende meines Programmes sollen die in fFeld2 abgespeicherten
Werte, in der Spalte B ausgegeben werden. Leider klappt dies nicht so ganz. Ich habe etwas falsch gemacht.

Für eure Hilfe wäre ich sehr dankbar.
Code:
Sub Feldtransformation()
Dim q As Long, i As Long
ReDim fFeld1(1 To Cells(Rows.Count, 1).End(xlUp).Row)
ReDim fFeld2(1 To Application.CountA(Columns(1)))

fFeld1 = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
q = 1
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Not IsEmpty(fFeld1(i, 1)) Then
fFeld2(q) = fFeld1(i, 1) '!!
q = q + 1
End If
Next i

'Ausgabe der Werte von fFeld2 in Spalte B
'!!! Fehler !!! In allen Zellen der Spalte B steht nur
'der erste Feldwert von fFeld2
Range("B1:B" & Application.CountA(Columns(1))) = fFeld2

End Sub
Top
#2
Hallo,

Du musst transponieren.


Code:
Range("B1:B" & Application.CountA(Columns(1))) = Application.Transpose(fFeld2)

'oder
Range("B1:B" & q - 1) = Application.Transpose(fFeld2)

'oder
Range("B1:B" & UBound(fFeld2)) = Application.Transpose(fFeld2)
Gruß Atilla
Top
#3
Hallo,

hier sind zwei Varienten:

Code:
Sub sSelect()
Dim rng as range
Set rng = columns(1).specialcells(xlcelltypeconstants)
For each c in rng
i = i +1
Cells(i, "B") = c.value
Next
'oder einfacher
rng.copy range("c1")
End sub

Beim Testen hat es erst im zweiten Anlauf funktioniert.

Mfg
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste