删除单个工作簿中每个工作表的错误行

时间:2018-11-01 09:23:13

标签: excel vba excel-vba syntax-error

我有一个包含7个相同工作表的电子表格,只显示略有不同的数据。它是数据和图表的混合体,每个单元格通过一系列索引匹配引用我的“输出”表。我只是想让它删除我的7个工作表中每个单元格(ii,2)掉落的行(输出工作表中此特定数据点没有数据)。我每张纸上的最后一行数据是212,我一直希望它引用单元格(ii,2)-每行的第二列数据点。因为有带有图表的块而没有数据,所以我不能使用End Xlup方法

我有以下代码:

Dim lr As Long
Dim sh As Integer
Dim ii As Long


lr = Cells(212, 2)

For sh = 1 To Worksheets.Count

    For ii = lr To 1 Step -1

        If Worksheets(sh).Cells(ii, 2) = CVErr(xlErrNA) Then

            Worksheets(sh).Rows(ii).EntireRow.Delete

        End If

    Next ii

Next sh

它运行正常,但是什么也没做,我不知道为什么

1 个答案:

答案 0 :(得分:0)

除了上面的注释,您不能直接检查特定类型的错误,首先需要检查单元格是否根本包含任何错误,以避免类型不匹配的错误。没有此错误表明您的循环根本没有运行。

import numpy as np
from numpy.lib.stride_tricks import as_strided

def ra_strides(arr, window):
    ''' Running average using as_strided'''
    n = arr.shape[0] - window + 1
    arr_strided = as_strided(arr, shape=[n, window], strides=2*arr.strides)
    return arr_strided.mean(axis=1)

def ra_add(arr, window):
    ''' Running average using add.reduceat'''
    n = arr.shape[0] - window + 1
    indices = np.array([0, window]*n) + np.repeat(np.arange(n), 2)
    arr = np.append(arr, 0)
    return np.add.reduceat(arr, indices )[::2]/window