Excel VBA:索引匹配工作不一致

时间:2019-05-01 01:08:29

标签: excel vba userform worksheet-function

我有一个Excel用户窗体,可从工作表中提取数据。用户在文本框(共13个)旁边选择一个OptionButton,其中包含他们想了解其他信息的主题。然后,索引匹配(工作表函数)从单元格返回匹配数据,以在用户窗体上填充其他文本框。 我在工作表数组中有100多个单元格,可用于填充旁边有单选按钮的文本框。我正在使用的索引匹配代码对所有这些都适用,但五个除外,我不知道为什么! 错误代码:“运行时错误1004:无法获取工作表类的Match属性”

我尝试了以下方法: -确保数组中的所有单元格的格式均相同(它们均格式为“常规”)。我也尝试过将它们格式化为“文本”。没运气 -检查以确保单元格中没有隐藏的字符(我将它们复制/粘贴到记事本中,检查了字符,然后将其复制回excel。 -通过将单元格复制到空白页并使用“检查重复项”来确保单元格确实具有匹配项 -我尝试将行为正确的单元格的格式复制到行为不正确的单元格上。

在这里变得很奇怪。 所有单元格都包含以类似于"<T6-1.1.A.01>"的结尾的文本字符串(不包括引号)。这使用户知道该行在部门参考手册中的位置。

对于具有匹配错误的单元格,如果我从索引数组和match数组中删除内容,然后将其替换为一些简单的文本(例如“ apple”),则代码可以正常运行。但是,一旦我到达结尾并以以下某些组合(包括尖括号)结尾的字符串,代码就会停止工作

  

<5.A> <.5.A> <5.5.5> <5-1.1.A> <5-1.1,A> <5-1.1 A> <5-1.1A> <5-1 1A >

     

5-1.1.A(无括号)

这是我的代码的样子(对于可以工作和不能工作的情况)。我在代码中引用的对象被命名为工作表中的区域。它们都是相同的长度。

 TextBoxInspection.Text=Application.WorksheetFunction.Index
 (Sheets("Sheet4").Range("InspectionTime"),Application.WorksheetFunction
 .Match(TextBox13.Value,Sheets("Sheet4").Range("InspectionCat"),0),1)

我对VBA还是很陌生,无法解决这一问题。任何人都知道是什么原因造成的吗?

0 个答案:

没有答案