VBA:单元格值超过256个字符时,单元格功能中的TypeMismatch

财富

我想做的事

我有一个遍历单元格以查看它们是否有#N/A错误的函数如果是这样,则另一列同一行中的单元格应显示为绿色。

问题

我得到了错误Run-time error 13: Type Mismatch一旦到达包含文本的某些单元格,就会发生这种情况。到目前为止,我发现似乎只对超过256个字符的单元格抛出此错误。

我使用Excel作为64位Office 365订阅的一部分。

到目前为止我尝试过的

我试图忽略此错误,On Error GoTo [ErrorLabel]只是继续进行下一个迭代。由于某种原因,此操作仅一次。一旦另一个单元格被检查超过256个字符,我就会再次遇到相同的错误。

编辑:可能与IsNA()期望Variant数据类型的功能有关我猜想,由于单元格值对于字符串来说太大了,它根本不会存储在变量中,或者仅仅是与有所不同Variant

这是包含几个过程的更大模块的一部分。因此,它应该是程序化的。isError并且CVErr如评论中所建议,未能解决此问题。仍然得到Type Mismatch

编码

产生错误的初始代码:

For i = 2 To rowCount
If WorksheetFunction.IsNA(Cells(i, 4)) _
    Then Cells(i, 1).Interior.Color = RGB(0, 255, 0)

我试图解决此问题的代码。这仍然会引发错误(请参阅“到目前为止我尝试过的部分”):

For i = 2 To rowCount
On Error GoTo Error
'based on following condition
'   1. Name does not exist in previous weeks' sheet, identified by VLOOKUP being #N/A
    If WorksheetFunction.IsNA(Cells(i, 4)) _
        Then Cells(i, 1).Interior.Color = RGB(0, 255, 0)
Error:
    Next i

如何繁殖

用一列创建空白表,其中包含几行不同长度的文本。如下所示,至少一行应超过256个字符来进行测试。

在此处输入图片说明

在Sheet1下的VBA中插入以下代码:

    Sub isText()
    Dim i As Integer
        For i = 2 To 6
        If WorksheetFunction.isText(Cells(i, 1)) _
            Then Debug.Print "Is Text" _
            Else Debug.Print "Is Not A Text"
        Next i
    End Sub

在此示例中,错误在到达第6行时立即抛出。

财富

多亏了评论者,问题才得以解决。

根本原因

该错误的原因可能与WorksheetFunctions.isNA()功能有关。根据此函数文档,期望使用type参数Variant但是在我的excel版本(办公室365(16.0.12527.21096)64位)中,任何包含超过255个字符的字符串的单元格都将其内部存储为Array数据类型。已使用=TYPEExcel函数进行了检查返回64表示一个数组(document)。

代替使用的Cells(rowNum, colNum)我用Cells(rowNum, colNum).Value它返回一个Variant数据类型,而不是一个Array这正是我需要的类型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用vba写入xml字符串中超过12个字符的单元格

来自分类Dev

在列表中的一个单元格中按单元格中的每个字符进行排序

来自分类Dev

如何读取所有数据单元格并仅突出显示超过 10 个字符的单元格

来自分类Dev

删除单元格中字符之间的空格,但仅当两个单个字符之间存在空格时

来自分类Dev

使用vba删除最后4个字符并替换同一单元格中的新单词/数字

来自分类Dev

在Excel VBA中创建一个函数以测试单元格是否包含某个字符

来自分类Dev

更改单元格中第一个字符的字体-Excel,VBA

来自分类Dev

使用vba删除最后4个字符并替换同一单元格中的新单词/数字

来自分类Dev

寻找长度为2个字符或1个字符的单元格

来自分类Dev

在Matlab中合并2个字符单元格数组

来自分类Dev

在单元格中包含一个字符串

来自分类Dev

如何使用 VBA 将数组公式作为长度超过 255 个字符的字符串自动输入到 Excel 单元格中?

来自分类Dev

将一个单元格中的最后一个字符移动到另一个单元格的开头

来自分类Dev

删除单元格中的第一个字符,并将其复制到Google表格中的相邻单元格中

来自分类Dev

比较VBA中单元格的值

来自分类Dev

比较VBA中单元格的值

来自分类Dev

如果一个单元格包含某个字符,请替换r中的整个单元格

来自分类Dev

在VBA中,找到一个字符出现在一个单元格范围内单个单元格中的最大次数

来自分类Dev

VBA-将字符串中的前三个字符复制到另一个单元格中

来自分类Dev

当单个单元格包含多个字符串时,与字符串关联的值的总和

来自分类Dev

Excel 查找功能从包含句子的活动单元格中查找整个单词,而不是单个字符

来自分类Dev

包含88个字符的单元格的字符串的换行

来自分类Dev

确定单元格值的第一个字符是数字还是文本?

来自分类Dev

Excel VBA / 如果单元格的值与参考单元格中的值不符,则删除单元格

来自分类Dev

如何从上一个单元格更改excel中的一个字符

来自分类Dev

从另一个单元格(VBA)的字符串中删除一个单元格中的值

来自分类Dev

公式excel从单元格中的第一个字符中查找数据

来自分类Dev

在字符串的单元格数组中查找多个字符串的位置

来自分类Dev

根据 VBA Excel 2010 中另一个单元格的值设置单元格的值

Related 相关文章

  1. 1

    如何使用vba写入xml字符串中超过12个字符的单元格

  2. 2

    在列表中的一个单元格中按单元格中的每个字符进行排序

  3. 3

    如何读取所有数据单元格并仅突出显示超过 10 个字符的单元格

  4. 4

    删除单元格中字符之间的空格,但仅当两个单个字符之间存在空格时

  5. 5

    使用vba删除最后4个字符并替换同一单元格中的新单词/数字

  6. 6

    在Excel VBA中创建一个函数以测试单元格是否包含某个字符

  7. 7

    更改单元格中第一个字符的字体-Excel,VBA

  8. 8

    使用vba删除最后4个字符并替换同一单元格中的新单词/数字

  9. 9

    寻找长度为2个字符或1个字符的单元格

  10. 10

    在Matlab中合并2个字符单元格数组

  11. 11

    在单元格中包含一个字符串

  12. 12

    如何使用 VBA 将数组公式作为长度超过 255 个字符的字符串自动输入到 Excel 单元格中?

  13. 13

    将一个单元格中的最后一个字符移动到另一个单元格的开头

  14. 14

    删除单元格中的第一个字符,并将其复制到Google表格中的相邻单元格中

  15. 15

    比较VBA中单元格的值

  16. 16

    比较VBA中单元格的值

  17. 17

    如果一个单元格包含某个字符,请替换r中的整个单元格

  18. 18

    在VBA中,找到一个字符出现在一个单元格范围内单个单元格中的最大次数

  19. 19

    VBA-将字符串中的前三个字符复制到另一个单元格中

  20. 20

    当单个单元格包含多个字符串时,与字符串关联的值的总和

  21. 21

    Excel 查找功能从包含句子的活动单元格中查找整个单词,而不是单个字符

  22. 22

    包含88个字符的单元格的字符串的换行

  23. 23

    确定单元格值的第一个字符是数字还是文本?

  24. 24

    Excel VBA / 如果单元格的值与参考单元格中的值不符,则删除单元格

  25. 25

    如何从上一个单元格更改excel中的一个字符

  26. 26

    从另一个单元格(VBA)的字符串中删除一个单元格中的值

  27. 27

    公式excel从单元格中的第一个字符中查找数据

  28. 28

    在字符串的单元格数组中查找多个字符串的位置

  29. 29

    根据 VBA Excel 2010 中另一个单元格的值设置单元格的值

热门标签

归档