I';我正在尝试在VB.Net中读取excel表格并写入文本框。但当列数小于12时,它不起作用

I';我正在尝试在VB.Net中读取excel表格并写入文本框。但当列数小于12时,它不起作用,vb.net,excel,vba,Vb.net,Excel,Vba,如果我的excel工作表包含的列少于12列,则显示“不能将空值分配给字符串”的错误。当列数超过12时,它可以正常工作。帮我解决这个问题删除空行 # VB 删除空白列 # VB 有关更多详细信息,请参见链接尝试删除excel工作表中的空列意味着选择所有空列并将其删除,可能存在一些被视为空的空列。可能会有帮助..不太确定你的程序是做什么的,但猜测它与这一行有关k=k+1+(13-b)wow现在就可以了。。。。。我已经删除了空列,然后它就可以正常工作了…有没有其他方法可以在不删除列但只删除值的情况下使

如果我的excel工作表包含的列少于12列,则显示“不能将空值分配给字符串”的错误。当列数超过12时,它可以正常工作。帮我解决这个问题

删除空行

#

VB

删除空白列

#

VB


有关更多详细信息,请参见链接

尝试删除excel工作表中的空列意味着选择所有空列并将其删除,可能存在一些被视为空的空列。可能会有帮助..不太确定你的程序是做什么的,但猜测它与这一行有关
k=k+1+(13-b)
wow现在就可以了。。。。。我已经删除了空列,然后它就可以正常工作了…有没有其他方法可以在不删除列但只删除值的情况下使其正确。。。谢谢你@Siddiquemahsud请参见链接
Dim L As Long
    L = w.Worksheets.Count

    Dim F As Integer = 1
    For F = 1 To L
        ' Get sheet.
        Dim sheet As Worksheet = w.Sheets(F)

        ' Get range.
        Dim r As Range = sheet.UsedRange

        ' Load all cells into 2d array.
        Dim array(,) As Object = r.Value(XlRangeValueDataType.xlRangeValueDefault)

        ' Scan the cells.
        If array IsNot Nothing Then
            Console.WriteLine("Length: {0}", array.Length)

            ' Get bounds of the array.
            Dim bound0 As Integer = array.GetUpperBound(0)
            Dim bound1 As Integer = array.GetUpperBound(1)
            Dim row As Integer = bound0
            Dim clmn As Integer = bound1
            Dim table As New System.Data.DataTable
            For col As Integer = 1 To bound1
                table.Columns.Add()
            Next
            ' Loop over all elements.
            For j As Integer = 1 To bound0

                Dim dr As DataRow = table.NewRow()

                For x As Integer = 1 To bound1

                    Dim s1 As String = array(j, x)
                    dr(x - 1) = array(j, x)
                    'Console.Write(s1)
                    'Console.Write(” “c)
                Next
                'Console.WriteLine()
                table.Rows.Add(dr)

            Next

            ' tb1.Text = table.Rows(0)(0)

            'Me.Controls("tb" & CStr(1)).Text = table.Rows(0)(0)
            Dim Form1 As New Form1

            Form1.A2T2.Text = table.Rows(2)(2)
            '    Form1.Controls("A" & CStr(1) & "T" & CStr(1)).Text = table.Rows(1)(1)


            Dim tbox() As System.Windows.Forms.TextBox = {Form1.T1, Form1.T2, Form1.T3, Form1.T4, Form1.T5, Form1.T6, Form1.T7, Form1.T8, Form1.T9, Form1.T10, Form1.T11, Form1.T12, Form1.T13, Form1.T14,
                                                          Form1.A1T1, Form1.A1T2, Form1.A1T3, Form1.A1T4, Form1.A1T5, Form1.A1T6, Form1.A1T7, Form1.A1T8, Form1.A1T9, Form1.A1T10, Form1.A1T11, Form1.A1T12, Form1.A1T13, Form1.A1T14,
                                                          Form1.A2T1, Form1.A2T2, Form1.A2T3, Form1.A2T4, Form1.A2T5, Form1.A2T6, Form1.A2T7, Form1.A2T8, Form1.A2T9, Form1.A2T10, Form1.A2T11, Form1.A2T12, Form1.A2T13, Form1.A2T14,
                                                          Form1.A3T1, Form1.A3T2, Form1.A3T3, Form1.A3T4, Form1.A3T5, Form1.A3T6, Form1.A3T7, Form1.A3T8, Form1.A3T9, Form1.A3T10, Form1.A3T11, Form1.A3T12, Form1.A3T13, Form1.A3T14,
                                                          Form1.A4T1, Form1.A4T2, Form1.A4T3, Form1.A4T4, Form1.A4T5, Form1.A4T6, Form1.A4T7, Form1.A4T8, Form1.A4T9, Form1.A4T10, Form1.A4T11, Form1.A4T12, Form1.A4T13, Form1.A4T14,
                                                          Form1.A5T1, Form1.A5T2, Form1.A5T3, Form1.A5T4, Form1.A5T5, Form1.A5T6, Form1.A5T7, Form1.A5T8, Form1.A5T9, Form1.A5T10, Form1.A5T11, Form1.A5T12, Form1.A5T13, Form1.A5T14,
                                                           Form1.A6T1, Form1.A6T2, Form1.A6T3, Form1.A6T4, Form1.A6T5, Form1.A6T6, Form1.A6T7, Form1.A6T8, Form1.A6T9, Form1.A6T10, Form1.A6T11, Form1.A6T12, Form1.A6T13, Form1.A6T14,
                                                           Form1.A7T1, Form1.A7T2, Form1.A7T3, Form1.A7T4, Form1.A7T5, Form1.A7T6, Form1.A7T7, Form1.A7T8, Form1.A7T9, Form1.A7T10, Form1.A7T11, Form1.A7T12, Form1.A7T13, Form1.A7T14,
                                                           Form1.A8T1, Form1.A8T2, Form1.A8T3, Form1.A8T4, Form1.A8T5, Form1.A8T6, Form1.A8T7, Form1.A8T8, Form1.A8T9, Form1.A8T10, Form1.A8T11, Form1.A8T12, Form1.A8T13, Form1.A8T14,
                                                         Form1.A9T1, Form1.A9T2, Form1.A9T3, Form1.A9T4, Form1.A9T5, Form1.A9T6, Form1.A9T7, Form1.A9T8, Form1.A9T9, Form1.A9T10, Form1.A9T11, Form1.A9T12, Form1.A9T13, Form1.A9T14,
                                                         Form1.A10T1, Form1.A10T2, Form1.A10T3, Form1.A10T4, Form1.A10T5, Form1.A10T6, Form1.A10T7, Form1.A10T8, Form1.A10T9, Form1.A10T10, Form1.A10T11, Form1.A10T12, Form1.A10T13, Form1.A10T14}

            Dim k As Integer = 0
            For a = 2 To row -1

                For b = 1 To clmn -1

                    tbox(k).Text = table.Rows(a)(b)
                    '  Form1.A1T1.Text = table.Rows(1)(2)

                    If (b = clmn - 1) Then
                        k = k + 1 + (13 - b)
                    End If
                    k = k + 1
                Next
            Next
            Form1.Fm.Text = table.Rows(0)(0)
            Rw = row - 3
            Clm = clmn - 2
            Form1.Rw = Rw
            Form1.Clm = Clm
            Form1.Show()
        End If


    Next
Worksheet sheet = sheets[0];   
sheet.Cells.DeleteBlankRows();
Dim sheet As Worksheet = sheets(0)
sheet.Cells.DeleteBlankRows()
Worksheet sheet = sheets[0];
sheet.Cells.DeleteBlankColumns();
Dim sheet As Worksheet = sheets(0)
sheet.Cells.DeleteBlankColumns()