VBA를 사용하여 Linux 텍스트 파일을 Excel로 로드
리눅스에서 만든 텍스트 파일이 있는데 워드패드에서 열면 파일이 정상적으로 나타납니다.그러나 메모장에서 열 때 아래 코드를 사용하여 엑셀에 로드하려고 하면 한 줄로 표시됩니다.
' Open the file
Open Filename For Input As #1
' Look for the Table Title
Do While Not (EOF(1) Or InStr(TextLine, TableTitle) > 0)
Line Input #1, TextLine
Loop
원래 줄로 어떻게 나눌 수 있나요?vba가 사용할 수 있는 End of line separator가 있습니까?
리눅스는 라인피드(\n
) 캐리지 리턴+라인피드가 아닌 새 라인을 나타냅니다.\r\n
Windows에서 사용하는 것처럼 사용할 수 없습니다.Line input
대신:
Open Filename For Input As #1
'//load all
buff = Input$(LOF(1), #1)
Close #1
'//*either* replace all lf -> crlf
buff = replace$(buff, vbLf, vbCrLf)
msgbox buff
'//*or* line by line
dim lines() As String: lines = split(buff, vbLf)
for i = 0 To UBound(lines)
msgbox lines(i)
next
더 펑션
Public Function GetLines(fpath$) As Variant
'REFERENCES:
'Microsoft Scripting Runtime // Scripting.FileSystemObject
'Microsoft VBScript Regular Expressions 5.5 // VBScript_RegExp_55.RegExp
Dim fso As New Scripting.FileSystemObject, RE As New VBScript_RegExp_55.RegExp
If fso.FileExists(fpath) = True Then
Dim mts As MatchCollection, mt As Match
Dim lines() As String
Dim content$: content = fso.OpenTextFile(fpath).ReadAll()
With RE
.Global = True
.Pattern = "[^\r\n]+" 'catch all characters except NewLines/Carraige Returns
If .test(content) = True Then
Set mts = .Execute(content)
ReDim lines(mts.Count - 1)
Dim pos&
For Each mt In mts
lines(pos) = mt.Value
pos = pos + 1
Next mt
Else
MsgBox "'" & Dir(fpath) & "' contains zero bytes!", vbExclamation
End If
End With
GetLines = lines
Else
MsgBox "File not found at:" & vbCrLf & Dir(fpath), vbCritical
End If
End Function
그리고 (에서)에 의해 호출될 수 있습니다.immediate window
)
?GetLines("C:\BOOT.INI")(2)
및 산출물
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
위의 예를 사용하여 모든 OS에서 발생한 텍스트 파일의 모든 행을 가져올 수 있습니다.
이게 도움이 되길 바랍니다.
Windows "WordPad"를 사용하여 Linux 텍스트 파일을 엽니다.파일을 저장합니다.WordPad는 파일을 저장할 때 Linux 라인피드(\n)를 캐리지 리턴+라인피드(\r\n)로 변환합니다.코딩은 필요하지 않습니다.
언급URL : https://stackoverflow.com/questions/10945779/loading-linux-text-file-into-excel-using-vba
'programing' 카테고리의 다른 글
방화벽이 작동하지 않습니다. com.google.화력 기지설비파이어베이스설치예외. (0) | 2023.06.28 |
---|---|
C#에서 Excel 파일을 구문 분석하면 셀이 255자로 잘리는 것 같습니다...어떻게 그것을 멈출 수 있습니까? (0) | 2023.06.28 |
파이썬을 사용하여 안드로이드 앱을 완전히 개발하는 방법은 무엇입니까? (0) | 2023.06.23 |
Git: 다른 리모컨에서 꺼내기 (0) | 2023.06.23 |
사용자 지정 지역에 Firebase 배포(eu-central1) (0) | 2023.06.23 |