Thema Datum  Von Nutzer Rating
Antwort
26.07.2012 14:31:49 c4b4l
NotSolved
26.07.2012 20:51:29 Till
NotSolved
27.07.2012 11:32:12 c4b4l
NotSolved
27.07.2012 11:37:36 c4b4l
NotSolved
Rot Aus 1 Array mach 2? Zu lange Zeichenfolge
27.07.2012 18:15:59 Till
NotSolved

Ansicht des Beitrags:
Von:
Till
Datum:
27.07.2012 18:15:59
Views:
530
Rating: Antwort:
  Ja
Thema:
Aus 1 Array mach 2? Zu lange Zeichenfolge

Hi,

Excel gibt immer ein zweidimensionales Variantarray zurück, es sei denn es wird nur ein einziger Zellwert abgefragt, bei einer Spalte/Zeile ist das Array aber trotzdem zweidimensional. Genauso kann Excel nur ein zweidimensionales Array auf einen Zellbereich anwenden, also muss auch das Target-Array zweidimensional sein.

Was Transpose angeht... wie schon gesagt: Die Funktion vertauscht die Dimensionen - aus einer Spalte wird eine Zeile. Das macht in dem gezeigten Codeauschnitt eigentlich absolut garkeinen Sinn.

"Ab 256 Zeichen pro Zeile"

Meinst du vielleicht Zellen, nicht Zeichen? Falls ja dann wäre das durchaus logisch, weil ja die Transpose Funktion benutzt wird. Sobald du dann mehr als 255 beschriebene Zeilen in deiner Spalte hast, kommt Excel zar wunderbar mit 255 Zeilen (oder auch 65536) klar, kann aber nur mit maximal 255 Spalten arbeiten (Excel 2002/2003).

Das dein Makro bei weniger als 255 Zeilen richtig funktioniert kann ich mir eigentlich nicht vorstellen.

Folgendes funktioniert auf jeden Fall:

Private Sub sdfsdfs()
Dim arrSource As Variant
Dim arrTarget As Variant
Dim loLastRow As Long
Dim iCnt1 As Integer, iCnt2 As Integer
    
    With ThisWorkbook.Sheets(1)
        arrSource = .Range(.Cells(1, 13), .Cells(Rows.Count, 13).End(xlUp)).Value
    End With
        
    loLastRow = UBound(arrSource)
    ReDim arrTarget(loLastRow - 1, 0)
    For iCnt1 = 1 To loLastRow
        If Len(arrSource(iCnt1, 1)) > 0 Then
            arrTarget(iCnt2, 0) = arrSource(iCnt1, 1)
            iCnt2 = iCnt2 + 1
        End If
    Next
    
    strMappenpfad = "C:\test.xls" 'platzhalter
    Dim WB As Workbook
    Set WB = Workbooks.Add
    With WB
        With .Sheets(1)
            .Range(.Cells(1, 1), .Cells(iCnt2, 1)) = arrTarget
        End With
        .SaveAs Filename:= _
            strMappenpfad, _
            FileFormat:=xlTextPrinter, CreateBackup:=False
        .Close (False)
    End With
 
End Sub

Gruß

Till


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
26.07.2012 14:31:49 c4b4l
NotSolved
26.07.2012 20:51:29 Till
NotSolved
27.07.2012 11:32:12 c4b4l
NotSolved
27.07.2012 11:37:36 c4b4l
NotSolved
Rot Aus 1 Array mach 2? Zu lange Zeichenfolge
27.07.2012 18:15:59 Till
NotSolved