使用有效的代码更新了问题:
我希望能够使用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文件。
答案 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
行