2015-12-15 4 views
1

У меня есть текстовый файл с адресами файлов, указанными по строкам.Игнорирование пустых строк и пробелов в текстовых файлах при чтении

Иногда, однако, пользователи входят туда и случайно добавляют пробел или пустую строку между адресами, и это приводит к сбою всего кода.

Как я мог избежать этого при чтении файла с помощью VBA?

Это текущий блок, используемый, чтобы открыть текстовый файл и читать адреса построчно:

Set ActiveBook = Application.ActiveWorkbook 

PathFile = ActiveWorkbook.Path & "\FilePaths.txt" 
Open PathFile For Input As #1 

Do Until EOF(1) 
    Line Input #1, SourceFile    
    Set Source = Workbooks.Open(SourceFile) 

ответ

2

Вы добавите две линии, которые будут игнорировать пустые строки и пробелы, как это:

Line Input #1, SourceFile 
SourceFile = Trim(SourceFile) '~~> This will trim all the spaces 
If Not SourceFile = "" Then  '~~> This will check if lines is empty 
    Set Source = Workbooks.Open(SourceFile) 
+0

Триммер линия работает нормально, но пустая строка идет в адрес дважды и дубликатами записей EDIT : Nvm, исправлено! Спасибо – Amostafa

+0

Рад помочь :) – ManishChristian

1

Предлагает Вам добавить дополнительный код

  • тест, если файл существует на самом деле
  • тест, если файл имеет допустимый тип для первенствует, чтобы открыть

код

Dim SourceFile As String 
Dim PathFile As String 
Set ActiveBook = Application.ActiveWorkbook 

PathFile = ActiveWorkbook.Path & "\FilePaths.txt" 
Open PathFile For Input As #1 

Do Until EOF(1) 
    Line Input #1, SourceFile 
    SourceFile = Trim$(SourceFile) 
    If Len(Dir(ActiveWorkbook.Path & "\" & SourceFile)) > 0 Then 
     Select Case Right$(SourceFile, Len(SourceFile) - InStrRev(SourceFile, ".")) 
     Case "xls", "xls*" 
     Set Source = Workbooks.Open(ActiveWorkbook.Path & "\" & SourceFile) 
     Case Else 
     Debug.Print "source not valid" 
     End Select 
    End If 
Loop 
Смежные вопросы