使用CInt时出现不匹配错误(右())

时间:2015-04-28 18:01:17

标签: excel-vba type-mismatch vba excel

我正在使用以下代码来识别电子表格中最后填充的行以及后面的第一个空行,并使用此信息我找出用空白行填充第一个单元格的内容(PC 1,PC 2 ,PC 3等)。当我尝试运行它时,我一直收到“类型不匹配”错误,但我不确定我需要更改什么来修复它。下面是相关代码,我在上面添加了一个注释调试器停止的行。

    'Creates variable for the next empty row and for PC #.
    Dim lastRow As Long
    Dim emptyRow As Long
    Dim NewPC As Long

    'Determines last row.
    lastRow = Range("A65536").End(xlUp).Row

    'Determines empty row.
    emptyRow = Range("A65536").End(xlUp).Row + 1

    'Determines PC entry value  <--- DEBUGGER STOPS ON FOLLOWING LINE OF CODE.
    NewPC = CInt(Right(Cells(lastRow, 1).Value, Len(Cells(lastRow, 1).Value) - InStrRev(Cells(lastRow, 1).Value, " "))) + 1

    'Makes PC Data Sheet active.
    Sheet1.Activate

    'Enters PC # data into first column.
    Cells(emptyRow, 1).Value = "PC" & " " & NewPC

知道了!这是改变的行:

    'Determines PC entry value
    If lastRow = 1 Then
        NewPC = 1
    Else
        NewPC = Right(Cells(lastRow, 1).Value, Len(Cells(lastRow, 1).Value) - InStrRev(Cells(lastRow, 1).Value, " ")) + 1
    End If

2 个答案:

答案 0 :(得分:1)

您确定Cells(lastRow, 1).Value中的实际内容可以解释为String吗?如果是错误,则对它进行字符串操作无效。

答案 1 :(得分:0)

看起来你也得到了这个空间。怎么样:

NewPC = CInt(Mid(Cells(lastRow, 1).Value, InStrRev(Cells(lastRow, 1).Value, " ")))