首页 > 解决方案 > 将单元格值与工作表名称进行比较未按预期工作

问题描述

我正在做一些测试,将单元格中的值与工作表的名称进行比较。Cells(2,1)中的值为5,工作表的名称也是5

Sub test()    
    MsgBox (Cells(2, 1) & ActiveSheet.Name)

    If Cells(2, 1).Value = ActiveSheet.Name Then
        MsgBox ("They are the same")
    End If
End Sub

我得到弹出框说55,这意味着这两个值是相同的,但是“The are the same”窗口从未出现。我想知道这里可能缺少什么?

标签: excelvba

解决方案


单元格值是一个数字,工作表名称是一个字符串。CStr在与工作表名称进行比较之前,将数字转换为字符串。

Sub test()
    MsgBox (Cells(2, 1) & ActiveSheet.Name)

    If CStr(Cells(2, 1).Value) = ActiveSheet.Name Then
        MsgBox "They are the same"
    End If
End Sub

推荐阅读