Excel VBAtypes不匹配引用Cell.Value

嗨,对不起,这几乎肯定会是一个“唔”的时刻,但我已经很久没有编码了,而且我有点生疏了。

我有一个单元格的值,当我尝试把它当作一个string处理时,我一直得到一个types不匹配,然而CStr和testingIsNull等似乎没有帮助。 感谢一些build议。

Set ClientTable = SourceBook.Sheets("Source Data").Range("extdata") For Each rng1 In ClientTable.Columns(1).Cells 'if not first row (header row) and the customer name is matching the selected customer If (i <> 0) And (rng1.Value = SourceBook.Sheets("Source Data").Range("C1")) Then If Not IsNull(ClientTable.Columns(6).Cells.Offset(i, 0).Value) Then MsgBox ClientTable.Columns(6).Cells.Offset(i, 0).Value ' type mismatch here End If With Sheets("Contacts").Range("A1") .Offset(rowToWriteTo, 0).Value = ClientTable.Columns(6).Cells.Offset(i, 0).Value ' first name .Offset(rowToWriteTo, 1).Value = ClientTable.Columns(2).Cells.Offset(i, 0).Value ' last name .Offset(rowToWriteTo, 5).Value = ClientTable.Columns(3).Cells.Offset(i, 0).Value ' email .Offset(rowToWriteTo, 6).Value = ClientTable.Columns(4).Cells.Offset(i, 0).Value ' DDI .Offset(rowToWriteTo, 7).Value = ClientTable.Columns(7).Cells.Offset(i, 0).Value ' mobile .Offset(rowToWriteTo, 8).Value = ClientTable.Columns(5).Cells.Offset(i, 0).Value ' title End With rowToWriteTo = rowToWriteTo + 1 End If i = i + 1 Next 

如果我删除这些代码,表格(“联系人”)。范围(“A1”)的分配都可以正常工作。

PS:使用MsgBox只是为了debugging。 试图将ClientTable.Columns(6).Cells.Offset(i,0).Value赋值给一个stringvariables会产生相同的错误。

非常感谢您的帮助!

expression式ClientTable.Columns(6).Cells.Offset(i, 0).Value结果是一个值数组,因为Columns(6)是一个具有多个单元格的Range对象。 您不能将此数组分配给一个string。 也许你应该使用ClientTable.Cells(i, 6).Value来代替。 所以你得到一个单一的价值。