为什么在清除另一个函数中的范围内容时,单元格值没有在另一个函数中设置?
我正在尝试清除范围内的单元格后将单元格值设置为“全部”。我甚至试图弹出一个消息框,看看我是否能以某种方式检查我的支票价值是否正确。
DelRange
是我正在清理的范围。
Building
是我正在检查其值的单元格,如果它是空白的,则需要更改为“全部”。
clearPreviw
用于清除正在执行的其他工作表。
Sub ClearSheet()
Dim Dash As Worksheet
Dim DelRange As Range
Dim Building As Range
Set Dash = ActiveWorkbook.Worksheets("DASH")
Set DelRange = Dash.Range("FilterData")
Set Building = Dash.Range("SelBuild")
DelRange.ClearContents
Call clearPreview
'This part below doesn't work when the Range.ClearContents has been done, but doing it on it's own without clearing the range works fine
If Building.Value = "" Then
MsgBox "Building is empty", vbOKOnly
Building.Value = "All"
End If
End Sub
我将此测试作为一个单独的进程运行,但在.ClearContents
似乎停止此操作之后立即将其作为调用函数运行时再次运行。
Sub test()
Dim Dash As Worksheet
Dim DelRange As Range
Dim Building As Range
Set Dash = ActiveWorkbook.Worksheets("DASH")
Set DelRange = Dash.Range("FilterData")
Set Building = Dash.Range("SelBuild")
If Building.Value = "" Then
MsgBox "Building is empty", vbOKOnly
Building.Value = "All"
End If
End Sub
我一直在盯着它搜索,但我无法绕过这个。
答案 0 :(得分:1)
This链接为您提供了如何设置范围变量的良好开端(尽管我建议您不要使用.Select
和.Activate
)。
之后,根据您的需要使用.ClearContents
或.Clear
。
如果您正确清除了范围,则无需检查它们是否为空,因此这可能是您当前计划中的一个冗余步骤。
答案 1 :(得分:1)
我想你错过了:
Building.ClearContents;
我也希望:
If IsEmpty(Building.Value) Then
在:
If Building.Value = "" Then