我正在尝试使我的excel VBA宏在活动工作表上选择LAST空行,并忽略空列。现在,当我运行宏时,它可以正常工作,因为它会将文本文件中的信息粘贴到最后一个空行中,而忽略后面有数据的其他空白行。但是,如果一行数据包含一个空单元格,它将尝试将其粘贴到最后一行的第一个空单元格中,并弄乱所有内容。
我还希望能够从文本文件导入数据并粘贴为纯文本,而无需每次都建立新的连接。
我当前的代码如下:
Sub ImportData()
'
' Import NewFileList.txt Data Macro
'
' Keyboard Shortcut: Ctrl+i
'
ActiveCell.SpecialCells(xlLastCell).Select
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\qsi\newfilelist.txt", _
Destination:=Range("A1000").End(xlUp).Offset(1, 0))
.Name = "newfilelist_9"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 6
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Dim rLastRow As Range
Set rLastRow = Cells(Rows.Count, "B").End(xlUp)
'now delete last 2 rows:
rLastRow.Offset(-1).Resize(2).EntireRow.Delete
Cells.EntireColumn.AutoFit
Range("A1").End(xlDown).Offset(0, 0).Select
ActiveWorkbook.Save
End Sub
我要在导入后删除最后两行以删除目录信息,因为每次文件的数量都不同。
上图显示空白列。在此示例中,我想粘贴到第8行。