我编写宏来将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
请帮忙。
答案 0 :(得分:1)
您正在使用
清除整个工作表Sheet11.Cells.ClearContents
第四列中的'默认值'将与其他所有内容一起删除。如果您只想清除A到C列,并在D列中保留“默认值”,那么将该行更改为,
Sheet11.Cells(1, 1).Resize(1, 3).EntireColumn.ClearContents
这不会清除整个工作表;只有A列:C。