我们在使用VBA的时候,如果想对文件里面的内容进行跨文件拷贝,我需要使用到一种方法,首先对我们需要拷贝的文件,进行路径写死进行访问,如下代码示例:
a = "xxx.xlsm"
Workbooks(a).Activate
Workbooks(a).Worksheets("Sheet1").Select
Range("E3:F11").Select
Selection.Copy
For t = 0 To 100
strings(t) = Workbooks(a).Worksheets("Sheet1").Cells(3 + t, 2)
If strings(t) <> "" Then
i = i + 1
End If
Next
然后我们对我们需要拷贝的文件夹进行目录的搜索,以下代码示例:
b = Dir("C:\Users\mid1867\Desktop\files\") '当前文件夹路径
Do While b <> ""
If Right(b, 5) = ".xlsx" Then
Workbooks(b).Worksheets("xxxsheet").Range(areaname).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
endif
loop
最后就是判断当前文件夹是否有打开,来判断是否拷贝,代码和上面差不多,只是在循环里面进行判断,代码如下示例:
b = Dir("C:\Users\mid1867\Desktop\files\") '当前文件夹路径
Do While b <> ""
If IsWbOpen(b) Then '这一步是对文件是否打开进行判断
If Right(b, 5) = ".xlsx" Then
Workbooks(b).Worksheets("xxxsheet").Range(areaname).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
endif
endif
loop
贴上判断文件是否打开的子函数
'is file open?
Function IsWbOpen(strName As String) As Boolean
Dim w As Workbook
For Each w In Application.Workbooks
If w.Name = strName Then IsWbOpen = True: Exit Function
Next
IsWbOpen = False
End Function
跨文件内容差不多就是这样了,先分享到这里。