我有一个包含 3 列的 Excel 文件,前 2 列连接到第 3 列。
然后我运行这个 VBA 以使空单元格等于上面填充的单元格。
Sub fillempty()
With Selection.SpecialCells(xlCellTypeBlanks)
.FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
End Sub
说没有空单元格,尽管可见空。因此,如果我采用所谓的非空单元格但可见空且清晰的内容并再次运行 VBA,它确实会填充。出现问题是因为我有数十万个值。
如果我为第一列或第二列独立运行 VBA,但不是为串联的。
肉眼看来,有些单元格是空的,但除非清除它们的内容,否则脚本将无法工作......
C2 = IF(A2 <> "", CONCATENATE(A2, B2), "")
然后将其拖下数十万个值任何帮助将不胜感激。
谢谢
最佳答案
Dim c As Range
For Each c in Selection.Cells
if Len(Trim(c.value))=0 Then c.value=c.offset(-1,0).value
Next c
或更快,只要您不需要保留任何公式:Dim r as long, c as long, data, cols as long
data = selection.value
cols = ubound(data, 2)
for r=2 to ubound(data, 1)
for c = 1 to cols
if Len(Trim(data(r, c))) = 0 Then data(r, c) = data(r-1, c)
next c
next r
selection.Value = data
关于excel - 尝试填写时显示为非空的空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63253959/