在Excel 2013中执行宏后删除列

时间:2015-09-22 10:52:56

标签: excel vba

我编写宏来将csv文件中的三列导入到包含4列的excel文件中。基于来自csv文件的3个列来制定1列。因此在运行宏之前,有excel文件有3个空白列(甚至不是列名)和第4列有默认值。现在当我运行宏时,3列正在导入frm csv但是第4列正在被删除。我不知道为什么会这样。我使用Record Macro功能来创建宏。下面是我的宏代码:

Private Sub Workbook_Open()
Sheet11.Cells.ClearContents
With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;D:\Sample SSRS\power View\AlertHistory.csv", Destination:=Range("$A$1") _
        )
        .Name = "AlertHistory"
        .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 = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

请帮忙。

1 个答案:

答案 0 :(得分:1)

您正在使用

清除整个工作表
Sheet11.Cells.ClearContents

第四列中的'默认值'将与其他所有内容一起删除。如果您只想清除A到C列,并在D列中保留“默认值”,那么将该行更改为,

Sheet11.Cells(1, 1).Resize(1, 3).EntireColumn.ClearContents

这不会清除整个工作表;只有A列:C。