【问题标题】:Can I automate text import wizard for a data connection?我可以为数据连接自动化文本导入向导吗?
【发布时间】:2019-01-28 17:23:12
【问题描述】:

我记录了一个 Excel 宏来创建到 CSV 的数据连接。

但是,当我运行它时,我需要手动设置文本导入向导。考虑到我总是选择相同的选项,如何自动化文本导入向导?

更新:我从来没有通过vba进行数据连接,所以我只尝试记录宏,生成以下代码:

Workbooks("name").Connections.AddFromFile "...\data.csv", True, False

这会创建数据连接,但每次都会提示文本导入向导。我想用它来创建一个 Excel 插件

【问题讨论】:

  • 发布你的尝试。
  • 我会使用 powerquery 并从文件导入。这样你只需要点击刷新。取决于是否总是相同的文件 - 否则很容易修改以从文件夹中获取文件。
  • @newguy:我只是尝试录制宏,您可以在更新中阅读更多内容
  • @QHarr 谢谢,我试过使用 Power Query,但我需要这个用于 Excel 加载项,我不能在 vba 中使用 Power Query,或者我可以吗?
  • 是的,如果用户不在 2016/+ 上,您可能会更复杂。它是为这些版本构建的,无需任何额外说明即可直接使用。

标签: excel vba


【解决方案1】:

在@QHarr 评论之后,我现在使用 Excel 2016。使用宏记录器,我得到了一个长代码,它给了我解决方案

ActiveWorkbook.Queries.Add Name:="data", Formula:= _ "let" & Chr(13) & "" & Chr(10) & " Origen = Csv.Document(File.Contents(""...\data.csv""),[Delimiter="","", Columns=8, Encoding=1252, QuoteStyle=QuoteStyle.None])," & Chr(13) & "" & Chr(10) & " #""Encabezados promovidos"" = Table.PromoteHeaders(Origen, [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & " #""Tipo cambiado"" = Table.TransformColumnTypes(#""Encabezados promovidos" & _ """,{{""FechaID"", Int64.Type}, {""año"", Int64.Type}, {""mes"", Int64.Type}, {""dia"", Int64.Type}, {""hora"", Int64.Type}, {""Nemo"", type text}, {""MW generados"", type number}, {""Tecnología"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Tipo cambiado""" Workbooks(This_workbook).Connections.Add2 "Consulta - data", _ "Conexión a la consulta 'data' en el libro.", _ "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Carga Horaria;Extended Properties=" _ , """data""", 6, True, False

对不起西班牙语单词。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-23
    • 2023-03-16
    • 2021-08-01
    • 2012-01-15
    • 1970-01-01
    • 2013-11-15
    • 2013-04-25
    • 2012-04-24
    相关资源
    最近更新 更多