我有一个 Excel 工作簿,可以自动更新 CSV 文件中的工作表。这些从硬编码文件夹 (c:\temp\premiumreports\name_of_CSV_file.csv) 中提取数据。
此方法迫使我每次都将所有内容放入 c:\temp\premiumreports 中,或者如果我将文件发送给客户,他们必须创建相同的目录结构。
我想将 xlsx 文件与必要的 CSV 文件一起放入任何文件夹(c:\report 或用户桌面)中,当我打开 xlsx 时,数据会自动导入。
Current Workbook Connection
如果工作簿文件始终与 CSV 文件位于同一文件夹中,您可以利用 ActiveWorkbook.Path 方法设置相对路径。
假设 csv 文件名和连接名称相同的示例:
Sub refreshMsgConnection()
Dim csvFileName As String
csvFileName = "msg_by_weeks.csv"
Dim filePath As String
filePath = ActiveWorkbook.path
Dim conString As String
conString = "TEXT;" & filePath & "\" & csvFileName
With ActiveWorkbook.Connections("msg_by_weeks").Ranges.Item(1).QueryTable
.connection = conString
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.TextFilePromptOnRefresh = False
.Refresh BackgroundQuery:=False
End With
End Sub
您可能需要根据您的配置使用一些设置,例如分隔符等。如果遇到问题,请在使用所需格式设置新连接时录制宏,然后复制此子中的设置。
如果没有找到该文件,则会弹出文件选择框,供用户查找所需的文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)