Thema Datum  Von Nutzer Rating
Antwort
20.06.2013 10:01:36 Stefan
Solved
21.06.2013 19:36:46 Gast97872
NotSolved
Rot Speicher läuft über?
21.06.2013 20:10:15 Gast91619
NotSolved
21.06.2013 20:13:57 Gast85194
NotSolved
27.06.2013 08:29:46 Gast19591
NotSolved

Ansicht des Beitrags:
Von:
Gast91619
Datum:
21.06.2013 20:10:15
Views:
538
Rating: Antwort:
  Ja
Thema:
Speicher läuft über?

Versuch mal (lieber) so:

  
  Const C_SEARCH_STRING             As String = "rbpl ACCOUNT"
  Const C_SEARCH_COLUMN             As String = "A"
  Const C_IMPORT_WORKSHEET_NAME     As String = "Import"
  
  Application.ScreenUpdating = False
  
  Dim wkbSource     As Excel.Workbook
  Dim wkbImport     As Excel.Workbook
  Dim wksImport     As Excel.Worksheet
  Dim rngResult     As Excel.Range
  Dim strFirstAddr  As String
  Dim strPath       As String
  Dim strFilename   As String
  Dim lngRowId      As Long
  
  strPath = "K:\ALC\User\msu\RBPL_TimeSeries\krmport\"
  
  Set wkbImport = Workbooks.Add
  
  Application.DisplayAlerts = False
  While wkbImport.Worksheets.Count > 1
    Call wkbImport.Worksheets(1).Delete
  Wend
  Application.DisplayAlerts = True
  
  Set wksImport = wkbImport.Worksheets(1)
  wksImport.Name = C_IMPORT_WORKSHEET_NAME & CStr(wkbImport.Worksheets.Count)
  
  If Right$(strPath, 1) <> "\" Then strPath = strPath & "\"
  strFilename = Dir$(strPath & "*.csv")
  
  While strFilename <> ""
    
    Set wkbSource = Workbooks.Open(strPath & strFilename, ReadOnly:=True, IgnoreReadOnlyRecommended:=True)
    
    With wkbSource.Sheets(1).Columns(C_SEARCH_COLUMN)
      
      Set rngResult = .Find(C_SEARCH_STRING, LookIn:=xlValues, LookAt:=xlPart)
      
      If Not rngResult Is Nothing Then
        strFirstAddr = rngResult.Address
        Do
          lngRowId = lngRowId + 1
          
          If lngRowId > wksImport.Rows.Count Then
            Set wksImport = wkbImport.Worksheets.Add
            wksImport.Name = C_IMPORT_WORKSHEET_NAME & CStr(wkbImport.Worksheets.Count)
            lngRowId = 1
          End If
          
          wkbImport.Cells(lngRowId, "A").Value = rngResult.Value
          
          Set rngResult = .FindNext(rngResult)
        Loop Until rngResult.Address = strFirstAddr
      End If
      
    End With
    
    Call wkbSource.Close
    Set wkbSource = Nothing
    
    strFilename = Dir$()
  Wend
  
  Application.ScreenUpdating = True

End Sub

 


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
20.06.2013 10:01:36 Stefan
Solved
21.06.2013 19:36:46 Gast97872
NotSolved
Rot Speicher läuft über?
21.06.2013 20:10:15 Gast91619
NotSolved
21.06.2013 20:13:57 Gast85194
NotSolved
27.06.2013 08:29:46 Gast19591
NotSolved