我想要工作表名称包含“ SAP”的工作表中的合并数据。我已经编写了一些代码来执行此操作,但是每次运行都会得到Run-time error '438'
。这只是我的代码的开始,但是不起作用:(
Private Sub MergeFiles()
Dim ws As Worksheet
Dim xPath As String
xPath = ActiveWorkbook.Path & "\"
Filename = Dir(xPath & "*.xlsx")
Do While Filename <> ""
Workbooks.Open Filename:=xPath & Filename, ReadOnly:=True
For Each ws In Workbooks(Filename)
If LCase(ws.Name) Like "SAP*" Then
Sheets(ws).Activate
Range("A2:L85").Select
Selection.Copy
End If
Next ws
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
您可以将FOR语句替换为以下内容,它应该可以正常工作。
您要访问工作簿中的工作表,因此需要参考工作表。
For Each ws In Workbooks(Filename).Worksheets