Sub fuzhi()
Dim m As Long, wb As String, n As workbook
With Sheet1.Range("a1").CurrentRegion
wb = ThisWorkbook.Path & "D:\工具箱\自学vba\提取数据.xlsx"
Set n = GetObject(wb)
m = n.Sheets("Sheet2").Range("a1").CurrentRegion.Rows.Count
n.Sheets("Sheet2").Cells(m + 1, 1).Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End Sub想把当前workbook上的内容赋值到d盘下:提取数据.xlsx,sheet2中并且在不打开:提取数据.xlsx这个workbook的前提下但调试的时候, 提示说:Set n = GetObject(wb)出错
Dim m As Long, wb As String, n As workbook
With Sheet1.Range("a1").CurrentRegion
wb = ThisWorkbook.Path & "D:\工具箱\自学vba\提取数据.xlsx"
Set n = GetObject(wb)
m = n.Sheets("Sheet2").Range("a1").CurrentRegion.Rows.Count
n.Sheets("Sheet2").Cells(m + 1, 1).Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End Sub想把当前workbook上的内容赋值到d盘下:提取数据.xlsx,sheet2中并且在不打开:提取数据.xlsx这个workbook的前提下但调试的时候, 提示说:Set n = GetObject(wb)出错
第二个参数,写Excel的类名称。
LZ的写法没错,当指定含后缀的文件名,可以省略ProgID,系统会根据文件类型获取对象,该对象必须是打开的。
ThisWorkbook.Path & "D:\工具箱\自学vba\提取数据.xlsx"
第一个参数是检索对象的文件的完整路径名称。记住,他不是对象所代表应用程序的路径,而是文件的路径。如果成功,它就会启动与指定的 pathname 相关联的应用程序,同时激活指定文件中的对象。在本问题中,也就是说,需要指定一个 Excel 格式文档的文件名。第二个参数是通过类名来指定需要获取的对象类型。对于 Excel 顶层对象:Excel.Application 对象,那么传入 class 参数为字符串"Excel.Application”即可。注意:若通过指定 pathname 参数来获取对象,那么不管该对象是否已经存在(已经被Windows加载),那么通过正确的调用都能返回所需的对象。若通过 class 参数来指定,那么必须该对象已经存在,否则函数回报错。