在使用 Excel 的 VBA 时,我遇到了字符串数据类型的运行时错误。
我有一个声明为字符串的变量,并试图从电子表格中的单元格中读取一个值并作为一个项目添加到列表框中。特定单元格中存在的数据大于 2000 个字符。我的 vba 能够从单元格中读取值并在调试窗口中打印。当我尝试在列表框中添加项目时,它无法添加。它引发运行时错误。
运行时错误代码为“-2147352571 (80020005): Type Mismatch”。
有没有办法解决这类问题。
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。
谢谢