excel - 尝试填写时显示为非空的空单元格

标签 excel vba

我有一个包含 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/

相关文章:

java - 使用 Apache POI 获取大型 Excel 文件的 Excel 工作表名称

excel - 选择所有有数据的单元格

internet-explorer - 使用带有 Visual Basic 的 IE 浏览器

excel - 仅用户界面 :=true doesn't seem to allow VBA changes to conditional formatting?

vba - Range.Cells.Count 与 Range.Count

excel - 显示带有输入的公式表达式而不是其结果

带有 OLEDB 的 Sql 字符串在 VBA 中给出错误 1004

vba - 如何阻止对Application.Quit的调用导致弹出框?

excel - 如何从一个工作簿复制数据并将值仅粘贴到另一个工作簿中并允许宏只运行一次?

html - 使用vba在html输入框中输入文本