Excel VBA-导入无数据连接的CSV
我希望使用这种连接方式的VBA代码导入一些CSV文件。当我使用连接向导时,它会以我需要的表格格式下载CSV,所以我希望避免使用字符串读取器 有没有一种方法可以在不创建永久连接的情况下执行以下操作Excel VBA-导入无数据连接的CSV,vba,excel,csv,Vba,Excel,Csv,我希望使用这种连接方式的VBA代码导入一些CSV文件。当我使用连接向导时,它会以我需要的表格格式下载CSV,所以我希望避免使用字符串读取器 有没有一种方法可以在不创建永久连接的情况下执行以下操作 Sub Macro1() With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;T:\XYZ\KCross\Output\alpha.csv", Destination:=range("$B$2" _ )) .name =
Sub Macro1()
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;T:\XYZ\KCross\Output\alpha.csv", Destination:=range("$B$2" _
))
.name = "alpha_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, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
几天前我在电视上看到这个
' Merge data from multiple sheets into seperate sheets
Sub R_AnalysisMerger2()
Dim WSA As Worksheet
Dim bookList As Workbook
Dim SelectedFiles As Variant
Dim NFile As Long
Dim FileName As String
Dim Ws As Worksheet, vDB As Variant, rngT As Range
Dim vFn, myFn As String
Application.ScreenUpdating = False
SelectedFiles = Application.GetOpenFilename(filefilter:="Excel Files (*.csv*), *.csv*", MultiSelect:=True)
If IsEmpty(SelectedFiles) Then Exit Sub
For NFile = LBound(SelectedFiles) To UBound(SelectedFiles)
FileName = SelectedFiles(NFile)
vFn = Split(FileName, "\")
myFn = vFn(UBound(vFn))
myFn = Replace(myFn, ".csv", "")
Set bookList = Workbooks.Open(FileName, Format:=2)
Set WSA = bookList.Sheets(1)
vDB = WSA.UsedRange
bookList.Close (0)
Set Ws = Sheets.Add(after:=Sheets(Sheets.Count))
ActiveSheet.Name = myFn
Ws.Range("a1").Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB
Next
Application.ScreenUpdating = True
End Sub
' Merge data from multime files into one sheet.
Sub R_AnalysisMerger()
Dim WSA As Worksheet
Dim bookList As Workbook
Dim SelectedFiles() As Variant
Dim NFile As Long
Dim FileName As String
Dim Ws As Worksheet, vDB As Variant, rngT As Range
Application.ScreenUpdating = False
Set Ws = ThisWorkbook.Sheets(1)
Ws.UsedRange.Clear
'change folder path of excel files here
SelectedFiles = Application.GetOpenFilename(filefilter:="Excel Files (*.csv*), *.csv*", MultiSelect:=True)
For NFile = LBound(SelectedFiles) To UBound(SelectedFiles)
FileName = SelectedFiles(NFile)
Set bookList = Workbooks.Open(FileName, Format:=2)
Set WSA = bookList.Sheets(1)
With WSA
vDB = .UsedRange
Set rngT = Ws.Range("a" & Rows.Count).End(xlUp)(2)
If rngT.Row = 2 Then Set rngT = Ws.Range("a1")
rngT.Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB
bookList.Close (0)
End With
Next
Application.ScreenUpdating = True
Ws.Range("A1").Select
End Sub
永久连接?你想干什么?你说它有效,那么问题出在哪里呢?检查一下,为什么不直接使用
.OpenText
方法呢?然后,您可以将生成的工作簿/工作表复制到现有工作簿/工作表中。除此之外,我认为您将需要逐行解析,可能是使用FileSystemObject。您是否尝试过ActiveSheet.QueryTables.Item(“alpha_1”)。删除?嗯。。我没有。我想我之所以避免连接@Andreas,是因为我无法忍受每次打开某个链接时都会弹出“你想刷新链接吗?”