2012-09-24 142 views
0

在使用VBA for Excel时,我遇到了字符串数据类型的运行时错误。VBA 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年

感谢

+0

是否需要在列表框中显示2000个字符的项目? – shahkalpesh

+0

最好有2000个字符... – Matt

+0

不,我已经声明了所有我使用的变量。 – Matt

回答

1

有个〜2000个字符的限制,以一个单独的列表框项目。

如果你想避免错误,限制长度增加时:

listbox3.additem left$(a4, 2000) 

如果你想存储的全文在数组中这样做。

+0

感谢它的工作... – Matt