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

使用可用的代码更新了问题:

我希望能够有一个.xlsm文件将csv数据放入使用VBA for Excel的第二个.xlsm文件中。 后面的文件可能是在多台计算机上打开的。 以下是Excel中button后面的代码,试图完成此操作:

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 

该代码应该使用户能够浏览并从他/她的电脑中select一个csv文件。

您已经将ws声明为Worksheet对象:

 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

您正在尝试将工作表对象设置为一个string常量。 这是导致错误消息。