使用VBA获取标头信息时键入不匹配

时间:2017-03-22 19:06:10

标签: vba excel-vba type-mismatch excel

我正在使用以下代码来从LMS瀑布中提取测试标题信息:

Dim usr_attr As LMSTestLabAutomation.AttributeMap
Dim num_usr_att As Integer
Dim user_data_array() As String
Dim user_label_array() As String

Set usr_attr = my_db.GetProperties("")
num_usr_att = usr_attr.Count
ReDim user_label_array(num_usr_att - 1)
ReDim user_data_array(num_usr_att - 1)

I = 0
For I = 0 To num_usr_att - 1
   user_label_array(I) = usr_attr.KeyNames.Item(I)
   user_data_array(I) = usr_attr.Item(I)
Next I

'Enter the data into the report
wb.Sheets("Multi-cut Report").Select ' Switch to the Report Page
Set mcwb = wb.ActiveSheet

wb.ActiveSheet.Range("C5") = user_data_array(Application.Match("UA::Test request number:", user_label_array, False) - 1)
wb.ActiveSheet.Range("C6") = user_data_array(Application.Match("UA::Test Start Date", user_label_array, False) - 1)
wb.ActiveSheet.Range("C7") = user_data_array(Application.Match("UA::Test By", user_label_array, False) - 1)
wb.ActiveSheet.Range("C8") = user_data_array(Application.Match("UA::Test Location", user_label_array, False) - 1)  '<<<< function fails here <<<<

最后一行代码给我一个类型不匹配。但是,在对代码进行更改之前(不包含此代码块),我不会得到类型不匹配,它会返回标头中的值。当这段代码被注释掉时,脚本会完全按预期运行。

1 个答案:

答案 0 :(得分:0)

当错误的代码行中的字符串使用通配符时,将运行以下代码:

wb.ActiveSheet.Range("C8") = user_data_array(Application.Match("UA::Test Location*", user_label_array, False) - 1)

我认为在某些时候头文件附加了非打印字符,因此直接匹配不起作用的原因。感谢PatricK的建议。