Excel 循环遍历范围并查找空单元格
我对以下代码有问题。我希望它在一个范围内循环(AK2直到数据结束),然后在任何时候它发现一个空单元格,它就会将其值更改为应收账款。它没有这样做,我也没有收到任何错误通知。我的猜测是,我在设置变量时出错了:Excel 循环遍历范围并查找空单元格,excel,vba,is-empty,Excel,Vba,Is Empty,我对以下代码有问题。我希望它在一个范围内循环(AK2直到数据结束),然后在任何时候它发现一个空单元格,它就会将其值更改为应收账款。它没有这样做,我也没有收到任何错误通知。我的猜测是,我在设置变量时出错了: Option Explicit Private Sub Leere() Dim rng As range Dim rcell As range Dim WS As Worksheet Set WS = Worksheets("Sheet2") Set rng = WS.range("A
Option Explicit
Private Sub Leere()
Dim rng As range
Dim rcell As range
Dim WS As Worksheet
Set WS = Worksheets("Sheet2")
Set rng = WS.range("AK2", range("AK2").End(xlDown))
For Each rcell In rng
If rcell.Value = " " Then
rcell.Value = "Accounts Receivable"
End If
Next
End Sub
有什么想法吗?使用SpecialCells()
使用SpecialCells()
您应该能够用以下内容替换空(无公式)单元格:
Set ws = ThisWorkbook.Worksheets("Sheet2")
Set rng = ws.Range("AK2", ws.Cells(ws.Rows.Count, "AK").End(xlUp))
rng.Replace "", "Accounts Receivable", xlWhole
另一个非VBA选项可以是空白单元格的条件格式。单元格值仍然为空,但显示的文本更改将是动态的。您应该能够用以下内容替换空(无公式)单元格:
Set ws = ThisWorkbook.Worksheets("Sheet2")
Set rng = ws.Range("AK2", ws.Cells(ws.Rows.Count, "AK").End(xlUp))
rng.Replace "", "Accounts Receivable", xlWhole
另一个非VBA选项可以是空白单元格的条件格式。单元格值仍然为空,但显示的文本更改将是动态的。要找到一个空的do.value=“”而不是.value=“”(去掉空格)哇,就是这样!ThanksHow它能与isempty(rcell)一起工作吗?你是指真正的空白单元格还是包含零长度字符串的单元格?如果是前者,则应使用
Set rng=WS.range(“AK2”,WS.Cells(Rows.Count,“AK”).End(xlUp))
。您当前使用的xlDown
将在第一个真正空白的单元格上停止。您最好使用Set rng=ws.range(“AK2”,ws.Cells(ws.Rows.Count,“AK”).End(xlUp))
找到一个空白do.value=“”,而不是.value=“”(去掉空格)哇,仅此而已!ThanksHow它能与isempty(rcell)一起工作吗?你是指真正的空白单元格还是包含零长度字符串的单元格?如果是前者,则应使用Set rng=WS.range(“AK2”,WS.Cells(Rows.Count,“AK”).End(xlUp))
。您当前使用的xlDown
将在第一个真正空白的单元格上停止。您最好使用Set rng=ws.range(“AK2”,ws.Cells(ws.Rows.Count,“AK”).End(xlUp))
作为其他人的旁注,SpecialCells
如果找不到单元格,则会导致错误,但可选的On error Resume Next
可用于忽略这些单元格cases@Slai,精细添加。Thanks@Urumita,你通过了吗?作为对其他人的旁注,特殊单元格
如果没有找到单元格,则会导致错误,但可使用“错误恢复下一步”中的可选来忽略这些单元格cases@Slai,精细添加。Thanks@Urumita,你熬过了吗?