【问题标题】:excel import text file using vba in accessexcel使用vba在access中导入文本文件
【发布时间】:2020-07-10 02:26:03
【问题描述】:

我有一个文本文件需要从 access 导入到 excel 中。我已经构建了 vba 来生成文本文件,将它放在一个文件夹中,我有代码来获取我的 excel 模板并复制它。

但现在要将文本文件导入我的工作簿中的选项卡,我遇到了麻烦。我可以在 excel 中手动导入文本文件,但如果我可以在访问中做同样的事情,我的所有流程都会完全自动化。

我有想法并构建了我能做的,但它读取我正在绘制空白的文本文件的那部分。

sub updatereport_Click()

Set rsquery1 =  ???

Set excelapp = CreateObject("Excel.application", "")
excelapp.Visible = True

Set XL = CreateObject("Excel.Application")

Set targetworkbook = excelapp.workbooks.Open(drive & Inputlocation & Inputcurrentsunday & "\" & "AgentSchedulesDOW-Verint_WkOf_" & Inputcurrentsunday & ".xlsx")

targetworkbook.worksheets("Data").Range("A2:BO45000").clearcontents
targetworkbook.worksheets("Data").Range("A2").copyfromrecordset rsquery1

targetworkbook.Save
targetworkbook.Close

XL.workbooks.Close
XL.Quit

excelapp.workbooks.Close

End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    这可能有帮助吗? http://www.freevbcode.com/ShowCode.asp?ID=2180

    合并后的代码如下所示:

    Sub updatereport_Click()
    
    Dim connCSV As New ADODB.Connection
    Dim rsquery1 As New ADODB.Recordset
    Dim adcomm As New ADODB.Command
    Dim path As String
    
    path = "C:\Testdir\"  'Here Test dir is the Directory where
    ' the text file is located. don't write the file name here.
    
    'This is connection for a text file without Header
    
     'connCSV.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
     & path & ";Extended Properties='text;HDR=NO;FMT=Delimited'"
    
    
    'This is connection for a text file with Header (i.e., columns
     
    connCSV.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" _
    & path & ";Extensions=asc,csv,tab,txt;HDR=NO;Persist Security Info=False"
        
        
       rsquery1.Open "Select * From test.txt", _
           connCSV, adOpenStatic, adLockReadOnly, adCmdText
    
    
    Set excelapp = CreateObject("Excel.application", "")
    excelapp.Visible = True
    
    Set XL = CreateObject("Excel.Application")
    
    Set targetworkbook = excelapp.Workbooks.Open(drive & Inputlocation & Inputcurrentsunday & "\" & "AgentSchedulesDOW-Verint_WkOf_" & Inputcurrentsunday & ".xlsx")
    
    targetworkbook.Worksheets("Data").Range("A2:BO45000").ClearContents
    targetworkbook.Worksheets("Data").Range("A2").CopyFromRecordset rsquery1
    
    targetworkbook.Save
    targetworkbook.Close
    
    XL.Workbooks.Close
    XL.Quit
    

    您可能需要更改的内容不止于以下内容,但绝对需要:

    1. 将文本文件位置的路径放在第 8 行
    2. 更新第 23 行测试文件的名称
    3. 根据您的文本文件是否有标题,可能需要注释/取消注释相应的 connCSV.open 代码

    【讨论】:

      猜你喜欢
      • 2014-09-19
      • 1970-01-01
      • 1970-01-01
      • 2015-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      相关资源
      最近更新 更多