我需要帮助开发VBA Macro for Excel 2013。 我使用运行查询宏后创建的大型数据文件来从SQL服务器获取数据。查询文件生成的数据文件在A列中始终具有日期:时间戳,并且在其他列(用户预定义标签)中处理结果日期:时间戳是必不可少的,因为数据文件由另一个应用程序使用分析并生成报告。原始数据文件有时在某些行中包含“0”值。运行宏以删除“0”值并复制上面的值。
第一个场景
第一个问题是,数据不适用于日期:数据表在单元格中显示#N / A的时间。有时,完整的行将显示#N / A,时间戳记在A列中。然后运行宏以从工作表中删除#N / A.然后手动操作工作表以删除除时间戳之外没有值的行。 我需要一个宏的帮助来删除空的行,除了列A与日期:时间戳,必须删除完整的行。
第二场景
有时#N / A将位于单元格上方,下方,左侧和右侧的列单元格中,此#N / A行不得删除,但必须是上面的值,因为其他应用程序数据计算。
手动操作数据表非常耗时,文件更正后会保存为“csv”并导入到其他应用程序。
我尝试了很多条件宏但没有运气。
是否有人可以提供帮助
我将非常感谢任何帮助。
答案 0 :(得分: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