大佬帮忙看下这里为何提示这种错误,要怎么改呀,万分感谢!!!
vba吧
全部回复
仅看楼主
level 3
2024年06月17日 22点06分 1
level 5
不太明白你下面那个获取可见行的为啥要搞这么复杂,直接一个FOR EACH RANGE IN RANGE(范围).SpecialCells(xlCellTypeVisible)不好吗?
2024年06月18日 00点06分 2
不过我觉得你这代码出错的原因可能是筛选没数据,然后这里就出错了,你看看是不是
2024年06月18日 00点06分
level 8
都用vba了,还筛选啥,直接数组循环搞定
2024年06月18日 04点06分 3
好像是哦,晚点我试试[哈哈]
2024年06月18日 05点06分
level 3
感谢回复[哈哈],筛选后的表格是这样的应该不是没数据的问题,我代码贴下面麻烦帮我看下怎么改好一些,谢啦🙏
代码:
Sub 添加2()
Dim ws1, ws2, i, k, arr, kai
Dim rg, j
Set ws1 = ThisWorkbook.Worksheets("采购单")
Set ws2 = ThisWorkbook.Worksheets("开单")
Set kai = ws2.ListObjects("TB_开单")
With ws1.Range("a1").CurrentRegion
.AutoFilter
.AutoFilter field:=2, Criteria1:=ws2.Range("$Q$4")
.AutoFilter field:=3, Criteria1:=ws2.Range("$U$4")
End With
If ws1.FilterMode Then
With ws1.AutoFilter.Range.SpecialCells(xlCellTypeVisible) ’这句还是会报错...
For i = 1 To .Areas.Count
k = k + .Areas(i).Rows.Count
Next
End With
arr = Range("e2:i" & k)
End If
For i = 1 To UBound(arr) '表格插入多行
kai.ListRows.Add Position:=1, AlwaysInsert:=True
Next
End Sub
2024年06月18日 05点06分 4
1