我使用Labview生成一个Excel报表,该报表实际上将一个数组粘贴到电子表格中。例如,电子表格中存在空白:
1
2
3
1
2
3
但是,因为我要在电子表格中插入一个数组,所以空白是空的,但它们不是空的。
当我使用"IsEmpty“运行vba代码检查每个单元时,它返回true。但是,如果我使用"ISBLANK“运行excel公式,它将返回false。我试过以下几种方法,但这并不能使单元格变为空白。
If IsEmpty(Cells(r,c)) Then
Cells(r,c).Value = ""
Cells(r,c).ClearContents
Cells(r,c) = ""
我想使单元格变为空白,而不必删除它们。这是因为我试图在我的VBA代码中使用.End
,但它并不是止于空白。
发布于 2019-03-28 16:38:30
您不需要检查IsEmpty()
,而是:
If Cells(r, c).Value = "" Then Cells.ClearContents
这将移除诺尔斯。我指的是零长弦。
发布于 2019-03-28 16:44:35
这可能有点过分,但对你来说会有用的:
Sub tgr()
Dim ws As Worksheet
Dim rClear As Range
Dim aData As Variant
Dim lRowStart As Long
Dim lColStart As Long
Dim i As Long, j As Long
Set ws = ActiveWorkbook.ActiveSheet
With ws.UsedRange
If .Cells.Count = 1 Then
ReDim aData(1 To 1, 1 To 1)
aData = .Value
Else
aData = .Value
End If
lRowStart = .Row
lColStart = .Column
End With
For i = LBound(aData, 1) To UBound(aData, 1)
For j = LBound(aData, 2) To UBound(aData, 2)
If Len(Trim(aData(i, j))) = 0 Then
If rClear Is Nothing Then
Set rClear = ws.Cells(lRowStart + i - 1, lColStart + j - 1)
Else
Set rClear = Union(rClear, ws.Cells(lRowStart + i - 1, lColStart + j - 1))
End If
End If
Next j
Next i
If Not rClear Is Nothing Then rClear.ClearContents
End Sub
https://stackoverflow.com/questions/55402678
复制相似问题