简体   繁体   中英

Import .txt file to excel with VBA/SQL

As highlighted in the title, I would like a macro to import a.txt file rapidly. I've already tried multiple code but everytime you have to open, then copy then close the.txt file and since I have a couple of.txt files it takes somes times:

Sub ImportChange()
ChDir "R:\Desktop\Hugo"
SendKeys "~"
Workbooks.OpenText Filename:="R:\Desktop\Hugo.txt", 
DataType:=xlDelimited, semicolon:=True
Cells.Select
Selection.Copy
Windows("Tableau.xlsm").Activate
Sheets("Change").Select
Cells.Select
ActiveSheet.Paste
Columns("B:B").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False
Columns("A:A").Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
Range("A1").Select
Windows("Hugo.txt").Activate
Application.CutCopyMode = False
ActiveWorkbook.Close
SendKeys "~"
End Sub 

Thus my question is can I import using SQL instead of VBA or can I just import a.txt file without opening then closing it?

You can just use Bulkinsert to import directly your file to SQL. Once you have it on the database, you only have to load it on Excel once

---- INSERT
        bulk insert [TABLE]
        from 'c:\Filepath.txt'
        with
        (
        firstrow = 2,
        fieldterminator = '\t',
        rowterminator = '\n',
        maxerrors = 0
        )
---- MOVE
        EXEC master..xp_cmdshell 'MOVE filepathfrom.txt filepathTO.txt'

---- RENAME
        DECLARE @Rename VARCHAR(100)
        SET @Rename = 'RENAME "OriginalFilePath.txt" ' + @FilenameRenamed
        EXEC master..xp_cmdshell @Rename

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM