0

刚刚对我的以下代码有疑问:

    For Each c In "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        If Not String.IsNullOrWhiteSpace(exsheet.Range((c & "5")).Value.ToString) Then
            pointer = pointer + 1
            XRisks(pointer) = exsheet.Range(c & "6").Value.ToString

        End If
    Next

本质上,代码会查看 excel 电子表格(称为 exsheet)中每一列的第 5 行。如果该单元格中有东西,它会将其保存到数组 (XRisks) 中。

但是,我的 excel 电子表格经过 Z 并在列标题中继续 AA AB AC AD 等,这意味着,使用我目前拥有的代码,它停止读取列 Z 之后的列。

我尝试将 & "AA" & "AB" & "AC" 等添加到我的字母字符串的末尾,但所做的一切都是再次保存 A,然后再保存 A,然后再保存 A,然后再保存 B,因为它只是在查看每个我的字符串中的字符。

希望我已经描述得够多了。提前致谢!

4

1 回答 1

1

您可以简单地使用.Cells而不是.Range使用索引而不是字母。

    For i As Integer = 1 To 50
        If Not String.IsNullOrWhiteSpace(exsheet.Cells(5, i).Value.ToString) Then
        ...
    Next

要遍历所有列,您可以尝试 usedRange。然而,这可能是不安全的,因为如果第一列是空的,usedRange 不一定从第一列开始(也就是说,对于大多数类似表格的表格来说,它是足够安全的)。

    For i As Integer = 1 To exsheet.UsedRange.Columns.Count
        If Not String.IsNullOrWhiteSpace(exsheet.Cells(5, i).Value.ToString) Then
        ...
    Next
于 2013-03-17T15:43:51.190 回答