Jam*_*s H 1 excel vba excel-vba
嗨,很抱歉,这几乎肯定是一个“ doh”时刻,但是我已经很长时间没有编码了,所以我有点生锈。
我有一个单元格值,当我尝试将其视为字符串时,我一直遇到类型不匹配的情况,但是CStr和测试IsNull等似乎没有帮助。感谢您的一些建议。
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
Run Code Online (Sandbox Code Playgroud)
如果我删除了这段代码,Sheets(“ Contacts”)。Range(“ A1”)分配都可以正常工作。
PS:MsgBox的使用仅用于调试。尝试将ClientTable.Columns(6).Cells.Offset(i,0).Value分配给字符串变量会产生相同的错误。
预先非常感谢您的协助!
该表达式ClientTable.Columns(6).Cells.Offset(i, 0).Value产生值数组,因为Columns(6)它是Range具有多个单元格的对象。您不能将此数组分配给字符串。也许您应该ClientTable.Cells(i, 6).Value改为使用。这样就得到一个单一的价值。
| 归档时间: |
|
| 查看次数: |
4287 次 |
| 最近记录: |