VBA 新手。
我正在尝试编写一个脚本,将逗号分隔的文本文件导入到 Excel 电子表格中。我的文本文件有一些空字段,因此数据可能如下所示:STRATFIELD ROAD,,FAIRFIELD,其中“,,”表示 ADDRESS 2 字段为空。
我需要我的 VBA 跳过导入该字段,因为它是空的。现在,VBA 脚本在遇到空字段时立即停止导入。我希望它导入所有数据,如果文本文件中的字段为空,则将单元格留空。
谢谢!
Sub TestFileImport()
Dim fileToOpen As Variant
Dim fileFilterPattern As String
Dim wsMaster As Worksheet
Dim wbTextImport As Workbook
Application.ScreenUpdating = False
fileFilterPattern = "Text Files (*.txt), *.txt"
fileToOpen = Application.GetOpenFilename(fileFilterPattern)
If fileToOpen = False Then
' Input cancelled
MsgBox "No file selected."
Else
' file selected
Workbooks.OpenText _
Filename:=fileToOpen, _
StartRow:=2, _
DataType:=xlDelimited, _
Comma:=True
Set wbTextImport = ActiveWorkbook
Set wsMaster = ThisWorkbook.Worksheets("File Data")
wbTextImport.Worksheets(1).Range("A5").CurrentRegion.Copy wsMaster.Range("A5")
wbTextImport.Close False
Worksheets("File Data").Columns.AutoFit
Application.ScreenUpdating = True
End If
End Sub
我尝试了通过 Google 找到的各种不同的代码,但没有一个代码能够继续导入空字段之后的内容。
只需按照传统方式顺序读取逗号分隔的文本文件即可。 我想,你可以理解它是如何工作的。
Sub CSV_File2ExcelSheet()
Dim ws As Worksheet
Dim CSVName As String
Dim LineItems() As String
Dim rw As Long
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayStatusBar = False
Set ws = Worksheets("File Data")
CSVName = Application.GetOpenFilename("Text Files (*.csv), *.csv")
If CSVName = "False" Then Exit Sub
ws.Cells.ClearContents 'Clear existing data from Target Worksheet
Open CSVName For Input As #1
rw = 1
Do Until EOF(1)
Line Input #1, MyLine
LineItems = Split(MyLine, ",")
For c = 0 To UBound(LineItems)
ws.Cells(rw, c + 1) = LineItems(c)
Next c
rw = rw + 1
Loop
Close #1
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayStatusBar = True
MsgBox rw & " Row(s) Imported", vbInformation
End Sub