我正在寻找可以帮助我解决以下问题的宏或python脚本。
我有一个具有数千行数据的Excel工作表。有时服务器中断,并且那几天没有数据。这些实例在该特定单元格中用“ /”符号表示。我希望能够找到那些“ /”的所有实例,然后在这些单元格中填充一个等于其上方和下方的单元格平均值的数字,以“修复”错误。
误码1:如果连续有多个“ /”,我希望它们全部是错误字符串上下两个夹心单元的平均值。
我在下面附上了示例图片,期待您的答复!
我目前一直在尝试手动执行此操作,这显然行不通。
答案 0 :(得分:0)
如果您必须使用VBA而不是某些公式(请参见其他答案!),那么这里有一些相当简单的宏:
之前:
宏:
Sub Test()
With ActiveWorkbook.Sheets(1)
LR = .Cells(Rows.Count, 1).End(xlUp).Row
LC = .Cells(1, Columns.Count).End(xlToLeft).Column
Set RNG = .Range(Cells(1, 1), Cells(LR, LC))
With RNG
Set CL = .Find("/", LookIn:=xlValues)
If Not CL Is Nothing Then
FA = CL.Address
Do
X = 1
If CL.Offset(1, 0) <> "/" Then
CL.Value = WorksheetFunction.Average(CL.Offset(-1, 0), CL.Offset(1, 0))
Else
Do
X = X + 1
Loop While CL.Offset(X, 0).Value = CL.Value
CL.Value = WorksheetFunction.Average(CL.Offset(-1, 0), CL.Offset(X + 1, 0))
End If
Set CL = .FindNext(CL)
If CL Is Nothing Then
GoTo DF
End If
Loop While CL.Address <> FA
End If
DF:
End With
End With
End Sub
之后:
您必须根据自己的需要更改RNG
,例如:.Range(Cells(3, 2), Cells(LR, LC))
?
还请注意,我从第二行开始,将在最后一行之前停止,您必须手动进行检查,因为它不能是相邻单元格的平均值。