表+错误9(下标超出范围)

我使用表格从文本框中获取数据:textbox的每一行= table_result_final的一行。

我想摆脱textebox中的空白行:

第一行:“”

第2行:“TEXT”

第3行:“TEXT”

第4行:“”

问题是,当我的行都没有空的时候,我在最后出现一个错误信息“下标超出范围”。 虽然,我的所有数据都收集在正确的表格中。 我想摆脱它,但不明白的问题:(

感谢您的帮助。

While Table_Result_Final(i) <> "" Sheets("IDENREG_FORM_TEXTBOX").Cells(j, 1).Value = Table_Result_Final(i) i = i + 1 j = j + 1 Wend 

你必须遍历你的数组索引范围:

 For i = LBound(Table_Result_Final) To UBound(Table_Result_Final) If Table_Result_Final(i) <> "" Then j = j + 1 Sheets("IDENREG_FORM_TEXTBOX").Cells(j, 1).Value = Table_Result_Final(i) End If Next 

我认为你的循环条件应该是:

 While Table_Result_Final(i) <> "" And i <= UBound(Table_Result_Final) 

假设您有一个名为txtBox的文本框,如下所示:

在这里输入图像说明

那么,如果你运行这个代码:

 Option Explicit Public Sub RemoveEmptyLines() Dim strTextBox As String strTextBox = ActiveSheet.Shapes.Range(Array("txtBox")).TextFrame2.TextRange.Characters.Text Debug.Print "Input:" Debug.Print strTextBox ' We need to make it actually 2 times, just in case if the lines are ' odd number. strTextBox = Replace(strTextBox, Chr(10) & "" & Chr(10), Chr(10)) strTextBox = Replace(strTextBox, Chr(10) & "" & Chr(10), Chr(10)) strTextBox = Replace(strTextBox, Chr(10) & "" & Chr(10), Chr(10)) Debug.Print "Output:" Debug.Print strTextBox End Sub 

你会在直接的窗口得到这个:

 Input: My name is tsaka tsaka Slim Shaddy .... Output: My name is tsaka tsaka Slim Shaddy .... 

这个想法是读取文本框中的文本,并将其replace为Chr(10) & "" & Chr(10) ,它是string中空行的代码。