0
を使用してヘッダー情報を取得するときに私はLMSの滝からの試験ヘッダ情報を引き出すために、コードに次を使用しています:型の不一致VBA
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 <<<<
コードの最後の行は私に型の不一致を示します。しかし、コードに変更を加える前に(このコードブロックは含まれていませんでした)、型の不一致が発生せず、ヘッダーの値が返されます。このコードがコメントアウトされると、スクリプトはそれ以外の場合とまったく同じように実行されます。
何かをする前に、あなたは 'num_usr_att'の使用を再考する必要があります。 'usr_attr.Count = 0'の場合、ReDimに負の数でエラーを試みます。また、イミディエイトウィンドウで試してみてください: '?Application.Match(" UA :: Test Location "、user_label_array、False)' '0 'を返すかどうか確認し、見つかった場合はnoneを見つけて負の配列にアクセスしようとしていますindex - 確実に失敗します。 – PatricK
イミディエイトウィンドウを指摘してくれたPatricKに感謝し、その機能が存在することを知らなかった!私は答えを見つけたので、正しい結果を得るために、文字列リテラル "UA :: Test Location *"にワイルドカードを使用する必要がありました。助けてくれてありがとう。 – charwayne