我可以让Excel宏选择LAST空行并忽略空列

时间:2019-12-12 12:49:07

标签: excel vba

我正在尝试使我的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

我要在导入后删除最后两行以删除目录信息,因为每次文件的数量都不同。

example picture

上图显示空白列。在此示例中,我想粘贴到第8行。

0 个答案:

没有答案