我有一些包含的单元格的数据列#VALUE!
。当然很烦人,所以我想写一个宏,用#VALUE!
每个上下两个单元格的平均值替换每个工作表中的这些单元格。
例如。
A A
1 1 1
2 2 2
3 #VALUE! -> 3
4 4 4
5 5 5
我试图按照本贴和本贴进行操作,并具有以下代码,但作为一个初学者,当我收到“运行时错误'13'”时,我显然缺少一些东西。
Sub Test()
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
With wks
Dim Qty As Range
For Each Qty In Range("A:ZZ").Cells
If InStr(1, (Qty.Value), "#VALUE!") Then
ActiveCell.FormulaR1C1 = "=AVERAGE(R[-2]C:R[-1]C,R[1]C:R[2]C)"
Range("A:ZZ").Select
End If
Next
End With
Next
End Sub
任何帮助是极大的赞赏。
考虑:
If InStr(1, (Qty.Text), "#VALUE!") Then
并且由于“数量”是“范围”,请不要使用ActiveCell;反而:
Qty.FormulaR1C1 = "=AVERAGE(R[-2]C:R[-1]C,R[1]C:R[2]C)"
编辑#2:
这是一些工作代码:
Sub Test()
Dim wks As Worksheet, Qty As Range
For Each wks In ThisWorkbook.Worksheets
With wks
For Each Qty In Intersect(.UsedRange, .Range("A:ZZ").Cells)
If InStr(1, (Qty.Text), "#VALUE!") Then
Qty.FormulaR1C1 = "=AVERAGE(R[-2]C:R[-1]C,R[1]C:R[2]C)"
End If
Next
End With
Next wks
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句