我的问题是 Excel 电子表格(从 Access 导出为 .xls)的单元格看起来是空的,但实际上不是。这弄乱了我的计算和导航快捷方式。
单元格中没有公式或内容(已在此主题上发布的答案不能解决我的问题)。我附上了我的问题的图片(见底部)
故障排除显示:
=isblank(a1)
,它是 假 . =LEN(a1)
所以我的专栏在一些单元格中有条目,“空白”非空单元格。我只想要带有条目的单元格,其余的我需要清除。这也令人讨厌地意味着跳到下一个空或非空单元格的快捷方式将不起作用(它全部读取为非空白) - 使得导航大型数据集非常痛苦。
一旦我在单个“非空”空白单元格中单击并按 Enter 键,这似乎会清除单元格内容(“
=isblank
”公式中的“FALSE”现在切换为“TRUE”) - 这是不可行的不过,在如此大的数据集中修复单个单元格。任何人都可以帮忙吗?!
我找到了 2 个基本的解决方法来解决这个问题,但我真的很想知道这种情况是如何发生的,为什么会发生,以及将来如何避免它。
解决方法 1
在 excel 中,过滤列,仅显示“空白”,然后突出显示过滤后的列并按删除。取消过滤列表并解决问题。
解决方法 2
从“file.xlsx”保存 excel 电子表格并另存为“.csv”。
全部关闭,打开 csv 似乎非空空白单元格已修复,显示
=isblank= TRUE
& 现在可以使用 [CNTL 箭头键] 快捷键跳过。这太令人沮丧了,我还没有看到任何类似的问题或答案来说明为什么会这样?
为什么会发生这种情况?还有其他解决方法吗?
感谢 hive 思维!
excel sheet shows non-blank empty cells - working
最佳答案
有时将 ctrl+up/down 停在数据集的边缘会很好,但有时则不然;这是我用来清除所选范围的“空白”单元格的宏:
'clears cells with error or empty string values
Public Sub clearJunk()
Dim scrn As Boolean: scrn = Application.ScreenUpdating: Application.ScreenUpdating = False
Dim i As Long, rowCount As Long, FirstRow As Long
Dim col As Range
rowCount = Selection.Columns(1).Cells.count
FirstRow = Selection.Cells(1).Row - 1
For Each col In Selection.Columns
For i = 1 To rowCount
If IsEmpty(col.Cells(i)) Then i = col.Cells(i).End(xlDown).Row - FirstRow
If i > rowCount Then Exit For
If IsError(col.Cells(i).Value) Then
col.Cells(i).ClearContents
ElseIf col.Cells(i).Value = "" Then
col.Cells(i).ClearContents
ElseIf Trim(col.Cells(i).Value) = "" Then
col.Cells(i).ClearContents
End If
Next i
Next col
Application.ScreenUpdating = scrn
End Sub
此外,如果您从 MS-Access 复制和粘贴,您可能会发现这个也很有用:
Public Sub UnWrapText(): Selection.WrapText = False: End Sub
我已经将两个按钮都绑定(bind)到了我的功能区/QAT 上,这让我的生活更加轻松。
关于Access 导出中的 Excel 单元格看起来是空的,但不是 (=isblank=FALSE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45728183/