CSV转换为VBA中的另一个工作簿

时间:2013-08-23 13:00:43

标签: excel vba csv excel-vba

使用有效的代码更新了问题:

我希望能够使用VBA for Excel将一个.xlsm文件放入第二个.xlsm文件中。后一个文件可能在多台计算机中打开。下面是Excel中按钮背后的代码,试图实现此目的:

Sub bad_boy()
Dim wb As Workbook, strFile As String, ws As Worksheet

Set wb = Workbooks.Open("C:\Temp\TestFolder\son1.xlsm") 'set to current worksheet name

Set ws = wb.ActiveSheet

strFile = Application.GetOpenFilename("Text Files (*.csv),*.csv", , "Please select text file...")

With ws.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1"))
     .TextFileParseType = xlDelimited
     .TextFileCommaDelimiter = True
     .Refresh
End With
End Sub

该代码应该允许用户浏览并从他/她的计算机中选择csv文件。

2 个答案:

答案 0 :(得分:1)

您正在尝试将工作表对象设置为等于字符串常量。这导致了错误消息。

答案 1 :(得分:1)

您已将ws声明为工作表对象:

Dim ws As Worksheet, strFile As String

但是你试图为它分配一个Workbook对象。这将始终引发不匹配错误。

Set ws = Workbooks.Open("C:\Temp\TestFolder\son1.xlsm") 

尝试将该行更改为:

Dim wb as Workbook
Set wb = Workbooks.Open("C:\Temp\TestFolder\son1.xlsm")
Set ws = wb.ActiveSheet

然后删除第Set ws = ActiveSheet