-1

我在开发 Excel 2013 的 VBA 宏方面需要帮助。我使用在运行查询宏以从 SQL 服务器获取数据后创建的大型数据文件。查询文件生成的数据文件总是在 A 列中有一个日期:时间戳,而在其他列(用户预定义的标签)中处理结果,日期:时间戳是必不可少的,因为数据文件被另一个应用程序用于分析并生成报告。原始数据文件有时在某些行中包含“0”值。运行宏以删除“0”值并复制上面的值。

第一种情况

第一个问题是,如果某个日期的数据不可用:时间数据表在单元格中显示 #N/A。有时,完整的行将显示#N/A,时间戳记在A 列中。然后运行宏以从工作表中删除#N/A。然后必须手动操作该工作表以删除除时间戳之外没有任何值的行。我需要宏的帮助来删除除带有日期:时间戳的 A 列之外的空行,必须删除完整的行。

第二个场景

有时,#N/A 将位于单元格的上方、下方、左侧和右侧的列单元格中,此 #N/A 行不得删除,但必须为上方的值,因为其他应用程序数据计算。

数据表的手动操作非常耗时,在更正文件后将其保存为“csv”并导入其他应用程序。

我尝试了许多条件宏,但没有运气。

有没有人可以帮忙

我将不胜感激任何帮助。

4

1 回答 1

0

这是部分解决方案。以下宏将删除唯一值在 A 列中的所有行:

Sub RowKiller()
    Dim N As Long, NN As Long
    Dim r As Range
    NN = Cells(Rows.Count, "A").End(xlUp).Row
    Dim wf As WorksheetFunction
    Set wf = Application.WorksheetFunction
    For N = NN To 1 Step -1
        Set r = Cells(N, "A")
        If wf.CountA(r) = 1 And wf.CountA(r.EntireRow) = 1 Then
            r.EntireRow.Delete
        End If
    Next N
End Sub
于 2013-09-05T11:21:48.503 回答