gpt4 book ai didi

excel - 如何通过 VBA 将一个月的 csv 文件(命名日期)导入 Excel?

转载 作者:行者123 更新时间:2023-12-04 21:05:58 24 4
gpt4 key购买 nike

我需要将一个月的 CSV 文件加载到 Excel 中,以便通过 VBA 进行分析。每月的每一天都是一个带有日期名称 (YYYYMMDD) 的单独文件。

目前,我可以加载由两种不同情况创建的两个文件,A 和 B 使用

With ActiveSheet.QueryTables.Add(Connection:=Full_F_Name_A, _
Destination:=Range("$H$4"))

我使用循环来更改 A 和 B(以及目的地)。我还没有弄清楚如何增加日期。我使用输入框来获取当月第一个文件的日期。
F_Name = InputBox("Enter name of first data file eg YYYYMMDD, target=H4, EG4")

任何帮助都会很棒,因为我被卡住了......而且是初学者。

OK OK,请看下面的 VBA 代码。收到的运行时错误“3001”参数类型错误、超出可接受范围或相互冲突。调试器指向“.cursorlocation = aduseclient”行。也许我的电脑上缺少一些软件。 ADO 网站上的介绍视频不再存在,所以我没有看到介绍。我将尝试另一种我知道的方法,即打开文件并将它们转储到 excel 中,同时等待进一步的建议。
Sub Month_wdata_import()

Set cN = CreateObject("ADODB.Connection")
Set rS = CreateObject("ADODB.Recordset")

Dim sDate As String
Dim sDataPath As String
Dim i As Integer
Dim mMax As Integer

sDataPath = Worksheets("D&L").Cells(1, "G").Value ' values located in 2nd sheet of workbook
mMax = Worksheets("D&L").Cells(1, "D").Value 'values located in 2nd sheet of workbook

For i = 1 To mMax
sDate = "A_" + CStr(Worksheets("D&L").Cells(1 + i, "A").Value) ' looping through list of dates in sheet

With cN
.cursorlocation = aduseclient
.CursorType = adopenstatic
.LockType = adLockreadonly

.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & sDataPath & ";" & _
"Extended Properties=""text; HDR=Yes; FMT=Delimited; IMEX=1;""")
End With

With rS
.ActiveConnection = cN
.Source = "select * from data_" & sDate & "_.csv"
.Open
End With

Next

Range("A1").CopyFromRecordset rS

End Sub

最佳答案

你考虑过使用 多宝 ODBC 文本文件驱动程序/Jet 4.0 将数据检索到记录集中,然后将它们转储到工作表中:

dim cN as new adodb.connection
dim rS as new adodb.recordset
dim sDate as string
dim sDataPath as string

sDataPath="C:\Data"
sdate=date ' maybe loop through date arrary, or list of dates in sheet?

with cN
.CursorLocation = 3 ' adUseClient
.CursorType = 3 ' adopenstatic
.LockType = 1 ' adLockReadOnly
.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & sDataPath & ";" & _
"Extended Properties=""text; HDR=Yes; FMT=Delimited; IMEX=1;""")
end with

with RS
.ActiveConnection = cN
.Source = "select * from data_" & sdate & "_.csv"
.open
end with

range("A1").copyfromrecordset rs

所以把你的csv文件放在定义变量 sDataPath的路径中,设置日期变量 sDate (可能在一个循环中)并开始测试!

有关这种类型 pf 技术的更多信息,这里是 Scripting Clinic 的原始 MSDN 文章(在过去的美好时光):

MSDN: Much ADO about Text Files

此外,您还可以使用 Google 在网络上获取大量信息:)

关于excel - 如何通过 VBA 将一个月的 csv 文件(命名日期)导入 Excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18707320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com