首页 > 解决方案 > 简单的 VBA 代码:用文本填充单元格是空的

问题描述

这仅用于学习目的。我在下面有这段代码。我希望该程序会检查从 1 到 999 的每个单元格。如果单元格为空,它将用文本填充它。这段代码没有发生任何事情:

Sub Makro1()
'
' Makro1 Makro
'
Dim iRow As Integer
Dim iRowEmpty

On Error Resume Next
'//Your Line here which causes 1004 error
If Err.Number > 0 Then
  Debug.Print Err.Number & ":" & Err.Description
End If

i = 0
iRowEmpty = Rows(i, 1)

Do Until i = 999
    i = i + 1
    iRowEmpty = Rows(i, 1)
        If IsEmpty(iRowEmpty) = True Then
           iRowEmpty.Value = "Text..."

        End If
Loop
MsgBox ("The End")
'Note: Debug shortcut keys i use in PC: Step Into (F8), Step Over (Shift + F8), Step Out (Ctrl + Shift + F8)

End Sub

电子表格有 1 列数据,在大多数情况下,每隔一个单元格都是空的。

标签: vbaexcel

解决方案


第一:如果你想检查单元格,那么你应该使用

Cells(i,1)

第二: iRowEmpty 只是 Cell 的副本,而不是直接引用,因此您应该使用

Cells(i,1).Value = "Text..."

将值分配给单元格。

所以最后你有这样的东西

i = 0
Do Until i = 999
    i = i + 1
        If IsEmpty(Cells(i, 1)) = True Then
           Cells(i, 1).Value = "Text..."
        End If
Loop

希望这可以帮助。

编辑:

澄清:

句法

Microsoft Excel 中 ISEMPTY 函数的语法为:

IsEmpty(值)

价值

您要测试的值。如果 value 是空白单元格或未初始化的变量,则此函数将返回 TRUE。否则,该函数将返回 FALSE。

适用于

Excel 2016、Excel 2013、Excel 2011 for Mac、Excel 2010、Excel 2007、Excel 2003、Excel XP、Excel 2000

取自:TechOnTheNet


推荐阅读