我的表中有70列,大部分都是空的。我想删除没有单个值的列。问题是,该表有18000行,因此手动滚动是愚蠢的。
我厌倦了Expression和Select查询,但我看到表达式可以接受有限数量的字符,即没有足够的空间覆盖所有70列。
以下是我的尝试:
Format(IIf([t4k1],[t4k1],""), "00") & " " & Format(IIf([t4k2],[t4k2],""), "00") & " " &
Format(IIf([t4k3],[t4k3],""), "00") & " " & Format(IIf([t4k4],[t4k4],""), "00") & " " &
Format(IIf([t4k5],[t4k5],""), "00") & " " & Format(IIf([t4k6],[t4k6],""), "00") & " " &
Format(IIf([t4k7],[t4k7],""), "00") & " " & Format(IIf([t4k8],[t4k8],""), "00") & " " &
Format(IIf([t4k9],[t4k9],""), "00") & " " & Format(IIf([t4k10],[t4k10],""), "00") & " " &
Format(IIf([t4k11],[t4k11],""), "00") & " " & Format(IIf([t4k12],[t4k12],""), "00") & " " &
Format(IIf([t4k13],[t4k13],""), "00") & " " & Format(IIf([t4k14],[t4k14],""), "00") & " " &
Format(IIf([t4k15],[t4k15],""), "00") & " " & Format(IIf([t4k16],[t4k16],""), "00")
如您所见,该表有70列,t4k1,t4k2,t4k3,... t4k70
表格如下:
如何正确检查所有70列,是否使用VBA代码?
代码怎么样?
或者有更好的方法吗?
答案 0 :(得分:2)
我会在循环中使用DCount()
。 E.g。
Sub PrintEmptyColumns()
Dim i As Long
For i = 1 To 70
Debug.Print i, DCount("*", "CPA_foo", "Nz(t4k" & i & ", '') <> ''")
Next i
End Sub
如果打印(Ctrl + G打开直接窗口)
x 0
然后列t4k<x>
的行数为零。