VBA for Excel を使用しているときに、文字列データ型で実行時エラーが発生します。
文字列として宣言された変数があり、スプレッドシートのセルから値を読み取り、リストボックスの項目として追加しようとしています。特定のセルに存在するデータが 2000 文字を超えています。私のvbaは、セルから値を読み取り、デバッグウィンドウに出力できます。リストボックスに項目を追加しようとすると、追加できません。実行時エラーをスローしています。
ランタイム エラー コードは「-2147352571 (80020005): タイプの不一致」です。
この種の問題の回避策はありますか。
Public Sub update_form()
Dim a1, b1, c1, d1 As Single
Dim a2, b2, c2, d2 As String
Dim a3, b3, c3, d3 As String
Dim a4, c4, d4 As String
Dim i As Single
Dim b4$
a2 = req_no.Value
Sheets("Design Trace - Current").Select
Range("A1").Activate
Columns("A:A").Select
Selection.Find(What:=a2, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
a1 = ActiveCell.Row
b2 = Sheets("Design Trace - Current").Cells(a1, 2).Value
c2 = "A" & a1
d2 = "BBB" & a1
b1 = Application.WorksheetFunction.CountA(Range(c2, d2))
For i = 2 To b1 Step 3
a4 = Cells(a1, i).Value
b4 = Cells(a1, i + 1).Value
d1 = Len(b4)
Debug.Print " Length : " & d1
c4 = Cells(a1, i + 2).Value
design_ele.Text = a4
reverse_req.Text = b4
code_file_name.Text = c4
Debug.Print "a4 : " & a4
Debug.Print "b4 : " & b4
Debug.Print "c4 : " & c4
If (Len(a4) > 500) Then
ListBox1.AddItem "Refer Value"
Else
ListBox1.AddItem a4
End If
ListBox2.AddItem b4
If (Len(c4) > 500) Then
ListBox3.AddItem "Refer Value"
Else
ListBox3.AddItem c4
End If
Next
End Sub
これはユーザーフォームで、Excel のバージョンは 2007 です。
ありがとう