首页 > 解决方案 > 从字符串单元中提取数据;整数类型不匹配

问题描述

我编写了以下代码来确定一个单元格的电缆尺寸和类型,然后使用该信息将一个数字显示到另一个单元格中:

Dim rowNum3 As Integer, Num_of_string As Integer, cablesize1 As String, firstNum As Integer

Num_of_string = 4

For rowNum3 = 4 To 50
    cablesize1 = Cells(rowNum3, 9).Value
    firstNum = Left(cablesize1, Num_of_string)
    
    If cablesize1 Like "*AL*" = True Then
        If cablesize1 Like "*1/0*" = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(32, 7).Value
        ElseIf cablesize1 Like "*2/0*" = True Or cablesize1 Like "*3/0*" = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(33, 7).Value
        ElseIf cablesize1 Like "*4/0*" = True Or cablesize1 Like "*250*" = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(34, 7).Value
        ElseIf Application.Intersect(CInt(Left(cablesize1, Num_of_string)), Range(Cells(35, 4).Value, Cells(35, 5).Value)) = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(35, 7).Value
        ElseIf Application.Intersect(CInt(Left(cablesize1, Num_of_string)), Range(Cells(36, 4).Value, Cells(36, 5).Value)) = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(36, 7).Value
        ElseIf Application.Intersect(CInt(Left(cablesize1, Num_of_string)), Range(Cells(37, 4).Value, Cells(37, 5).Value)) = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(37, 7).Value
        ElseIf Application.Intersect(CInt(Left(cablesize1, Num_of_string)), Range(Cells(38, 4).Value, Cells(38, 5).Value)) = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(38, 7).Value
        End If
    ElseIf cablesize1 Like "*AL*" = False Then
        If cablesize1 Like "*2 *" = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(32, 6).Value
        ElseIf cablesize1 Like "*1 *" = True Or cablesize1 Like "*1/0*" = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(33, 6).Value
        ElseIf cablesize1 Like "*2/0*" = True Or cablesize1 Like "*3/0*" = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(34, 6).Value
        ElseIf cablesize1 Like "* 350 *" = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(35, 6).Value
        ElseIf Application.Intersect(CInt(Left(cablesize1, Num_of_string)), Range(Cells(36, 2).Value, Cells(36, 3).Value)) = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(36, 6).Value
        ElseIf Application.Intersect(CInt(Left(cablesize1, Num_of_string)), Range(Cells(37, 2).Value, Cells(37, 3).Value)) = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(37, 6).Value
        ElseIf Application.Intersect(CInt(Left(cablesize1, Num_of_string)), Range(Cells(38, 2).Value, Cells(38, 3).Value)) = True Then
            Cells(rowNum3, 10).Value = Worksheets("Tables").Cells(38, 6).Value
        End If
    Else
        Cells(rowNum3, 10).Value = "NA"
    End If
Next rowNum3

我在这里遇到错误:

ElseIf Application.Intersect(CInt(Left(cablesize1, Num_of_string)), Range(Cells(35, 4).Value, Cells(35, 5).Value)) = True Then

类型不匹配Cint我尝试了不同的方法将字符串转换为数字,但它不起作用

我从中获取字符串的示例单元格(我在末尾使用“AL”来确定它是铜还是铝)开头的数字是我尝试转换的数字

我从中获取信息的表

标签: excelvba

解决方案


推荐阅读