现在想批量打开文件夹中所有文件中的某个工作表,但问题是,不是所有文件都有这个工作表,想问一下当遇到这种文件要如何跳过,然后继续打开后面的文件进行操作
On Error Resume Next容错或者写一个函数遍历所有sheet是否存在名字为你那个工作表的名称,存在再继续
On Error Resume Next
If Sheets("xxx") Is Nothing Then MsgBox "xxx sheet不存在"
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!对以上COLLECT函数执行相反操作
Private Function RECOLLECT(arr)
'函数定义RECOLLECT(数组)对汇总的二维数组数据进行拆分,返回一个多行3列二维数组(返回数组从1开始计数)
'COLLECT函数与RECOLLECT函数操作相反
'返回数组为多行3列形式,纵向条件为第1列、横向条件为第2列、值为第3列,值为空则忽略
Dim brr, r, l, ll, i, j, w, result
r = (UBound(arr) - LBound(arr) + 1) * (UBound(arr, 2) - LBound(arr, 2) + 1) '返回数组最大行数
ReDim brr(1 To r, 1 To 3) '临时返回数组,从1开始计数
l = LBound(arr)
ll = LBound(arr, 2)
For i = l + 1 To UBound(arr) '原二维数组首行首列都是标题
For j = ll + 1 To UBound(arr, 2)
If arr(i, j) <> "" Then
w = w + 1
brr(w, 1) = arr(i, ll) '纵向条件为第1列
brr(w, 2) = arr(l, j) '横向条件为第2列
brr(w, 3) = arr(i, j) '值为第3列
End If
Next
Next
If r = w Then
RECOLLECT = brr
Else
ReDim result(1 To w, 1 To 3) '返回数组,避免无效部分
For i = 1 To w
result(i, 1) = brr(i, 1): result(i, 2) = brr(i, 2): result(i, 3) = brr(i, 3)
Next
RECOLLECT = result
End If
End Function