在写下我的问题之前,我试图找到答案,但没有成功。
我需要检查某个 Excel 文件的所有工作表中的单元格(假设为 C1)是否为空(没有值),并且我希望看到带有工作表名称的消息框,其中 C1 不为空。
原因是,我有一个包含许多表格的文件,现在我需要添加一些链接,但不是每个列表都有相同的“形式”,而且有一些列表我不需要,所以我需要先检查这两件事。
到目前为止,我有这段代码,但有些不对劲,因为我总是看到带有文本的消息框:单元格 C1 在所有工作表中都是空的。即使我在 C1 中有一些值(因为测试这段代码,我将它们添加到 3 个工作表中)。
Sub CheckCellC1()
Dim ws As Worksheet
Dim nonEmptyCell As String
nonEmptyCell = ""
' Browse all sheets in the current workbook
For Each ws In ThisWorkbook.Worksheets
' Check if cell C1 is empty
If ws.Range("C1").Value <> "" Then
nonEmptyCell = nonEmptyCell & ws.Name
End If
Next ws
' Result
If nonEmptyCell = "" Then
MsgBox "Cell C1 is empty in all sheets."
Else
MsgBox "Cell C1 isn't empty in those sheets:" & nonEmptyCell
End If
End Sub
我错过了什么?
提前感谢您的帮助。
更新:我从 PERSONAL.xlsb 文件运行我的代码,在“测试”期间我只打开了一个 excel 文件。
我的代码唯一的问题是使用ThisWorkbook
而不是。在行尾ActiveWorkbook
添加有助于消息框输入,现在更容易阅读了。& vbLf
nonEmptySheets = nonEmptySheets & ws.Name & vbLf
我是 VBA 新手,总是会犯这样的错误(我有点不明白代码所在的“位置”之间的区别以及它如何影响代码本身,但那是另一个话题),所以非常感谢大家帮助我。