Excel VBA-导入无数据连接的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 =

我希望使用这种连接方式的VBA代码导入一些CSV文件。当我使用连接向导时,它会以我需要的表格格式下载CSV,所以我希望避免使用字符串读取器

有没有一种方法可以在不创建永久连接的情况下执行以下操作

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,是因为我无法忍受每次打开某个链接时都会弹出“你想刷新链接吗?”