我有一个 excel 2007 工作簿,当前工作表名为“a”现在我想要的是,
当用户单击工作表 a 中的按钮时,它应该询问,
要导入哪个 csv 文件,
询问用户想要的新工作表的名称(该 csv 文件要放置的位置)。说简化用户现在说“b”。
之后将“工作表 a”复制到新工作表 b 中。将 csv 导入该新工作表,以逗号分隔,并允许覆盖复制工作表中的现有单元格。
完成所有这些任务的基本起始级代码是什么?
我将不胜感激在这方面的任何帮助。
谢谢萨尔
_
我有一个 excel 2007 工作簿,当前工作表名为“a”现在我想要的是,
当用户单击工作表 a 中的按钮时,它应该询问,
要导入哪个 csv 文件,
询问用户想要的新工作表的名称(该 csv 文件要放置的位置)。说简化用户现在说“b”。
之后将“工作表 a”复制到新工作表 b 中。将 csv 导入该新工作表,以逗号分隔,并允许覆盖复制工作表中的现有单元格。
完成所有这些任务的基本起始级代码是什么?
我将不胜感激在这方面的任何帮助。
谢谢萨尔
_
尝试这个:
Public strFile As String
Sub Main()
Dim WS As Worksheet
strFile = Application.GetOpenFilename("Excel workbooks,*.csv*")
If strFile = "False" Then
' the user clicked Cancel
Else
y = Right(strFile, Len(strFile) - InStrRev(strFile, "\", -1, vbTextCompare))
zz = Left(y, InStr(1, y, ".", vbTextCompare) - 1)
flag = 0
For k = 1 To Worksheets.Count
If Sheets(k).Name = zz Then
flag = 1
End If
Next
Set WS = Sheets.Add(After:=Sheets(Worksheets.Count))
If flag = 0 Then
WS.Name = zz
Else
MsgBox ("Sheet with same name already exist. Imported to default sheet")
End If
importcsv
End If
End Sub
Sub importcsv()
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & strFile, Destination:=Range( _
"$A$1"))
.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, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub