gpt4 book ai didi

excel - 将 csv 文件导入 Excel 非事件工作表的宏

转载 作者:行者123 更新时间:2023-12-01 22:15:33 25 4
gpt4 key购买 nike

我有一个启用宏的 Excel 工作簿,其中包含多个命名工作表。其中一个工作表名为“面板”,第二个工作表名为“数据”。名为“panel”的工作表有一个分配了宏的按钮。我想选择工作表上名为“面板”的按钮并显示浏览文件窗口。用户选择硬盘上的 csv 文件后,我希望将 csv 文件的内容导入到从单元格 A1 开始的名为“data”的工作表中。

问题 1:我分配给按钮的 vba 导致 csv 文件的内容被放置在与按钮相同的工作表(“面板”工作表)上。我希望将 csv 文件的内容放在“数据”表上。

问题 2:此外,还有一串代码引用我的硬盘驱动器和一个名为“capture.csv”的文件。因此,当启用宏的 Excel 文件位于另一台计算机上时,该文件会崩溃。有什么方法可以删除路径字符串,以便任何计算机都可以使用该文件?

任何解决此问题的帮助将不胜感激。分配给按钮的宏如下:

Sub load_csv()
Dim fStr As String
With Application.FileDialog(msoFileDialogFilePicker)
.Show
If .SelectedItems.Count = 0 Then
MsgBox "Cancel Selected"
End
End If
'fStr is the file path and name of the file you selected.
fStr = .SelectedItems(1)
End With
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\laptop\Desktop\CAPTURE.csv", Destination:=Range("$A$1"))
.Name = "CAPTURE"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
MsgBox fStr
End With
End Sub

最佳答案

这就是你正在尝试的吗?

Sub load_csv()
Dim fStr As String

With Application.FileDialog(msoFileDialogFilePicker)
.Show
If .SelectedItems.Count = 0 Then
MsgBox "Cancel Selected"
Exit Sub
End If
'fStr is the file path and name of the file you selected.
fStr = .SelectedItems(1)
End With

With ThisWorkbook.Sheets("Data").QueryTables.Add(Connection:= _
"TEXT;" & fStr, Destination:=Range("$A$1"))
.Name = "CAPTURE"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False

End With
End Sub

关于excel - 将 csv 文件导入 Excel 非事件工作表的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14633691/

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