代码之家  ›  专栏  ›  技术社区  ›  Luis Hernandez

如何在visual basic中计算条件中值的typename?

  •  0
  • Luis Hernandez  · 技术社区  · 6 年前

    我正在使用visual basic为excel编写宏。我已经查阅了几个教程,所有教程都使用“If TypeOf[object]Is[typename]Then”来检查单元格的值是否属于某种类型。例如,在我的代码中,我尝试评估单元格A1中的值是否是字符串,以便移动它。我的代码:

    Private Sub CommandButton1_Click()
    
     If TypeOf Range("A1").Value Is String Then
    
      Range("B1").Value = Range("A1").Value 
    
     End If 
    
    End Sub 
    

    但是,“字符串”一词突出显示,我得到一个错误,上面写着:编译错误: 应为:对象或类型名称

    我已经被困了很长一段时间,根本找不到或找不到出路。请帮忙。

    2 回复  |  直到 6 年前
        1
  •  0
  •   Tim Williams    6 年前

    您可以使用 TypeName() :

    If TypeName(Range("A1").Value) = "String" Then
    
        2
  •  0
  •   JohnyL    6 年前

    假设有 Worker 类别:

    Sub F()
    
        Dim x As Integer
        Dim j As Long
        Dim w As Object
    
        Set w = New Worker
    
        MsgBox TypeName(w) '// Worker
        MsgBox VarType(w)  '// 9 = vbObject
    
        If TypeName(x) = "Integer" Then
        End If
    
        If VarType(x) = vbInteger Then
        End If
    
        If VarType(j) = vbLong Then
        End If
    
    End Sub