使用vb.net在Excel中向右移动到下一个单元格

时间:2016-09-08 16:30:12

标签: vb.net excel visual-studio

我需要根据组合框中的项目命名我的标题。我基本上从组合框中获取项目并将它们添加到Excel工作表中现有标题行的末尾,因此从标题行中的第一个空单元格开始。但是,我似乎无法移动到右边的下一个单元格,这将是下一个标题/列名称。这是我到目前为止的代码:

For i = 0 To ComboBox1.Items.Count - 1
    Dim s As String
    s = Convert.ToString(ComboBox1.Items(i))
    xlWorkSheet.Range(columnName & "1").Value = s
Next i

ColumnName是该行中的下一个空白标题,列“L”,所以从那里我想填充该单元格,然后向右移动到下一个单元格。

5 个答案:

答案 0 :(得分:0)

正如其他人所建议的那样,您可以使用Cells()来帮助更轻松地进行迭代。请注意,用户/宏需要列编号,而不是字母

编辑:如何改为:

Dim s   As String
Dim myCol As Long
For i = 0 To ComboBox1.Items.Count - 1
    myCol = Range(columnName & 1).Column
    s = Convert.ToString(ComboBox1.Items(i))
    xlWorksheet.Cells(1, myCol + i).Value = s
Next i

答案 1 :(得分:0)

昨天循环如此:] 您可以使用以下内容一次设置所有标题:

Dim headers = ComboBox1.Items.Cast(Of Object).ToArray
xlWorkSheet.Range("A1").Resize(1, headers.Length).Value2 = headers

另外,当你得到可接受的答案时,你应该检查它旁边的绿色检查https://stackoverflow.com/tour

答案 2 :(得分:0)

  • 您可以创建一个获取列号参数的方法 首先,使用counter指向列索引。
  • 如果标题不在第1行,那么添加另一个行参数和 用
    替换xlWorksheet.Cells(1, counter) xlWorksheet.Cells(yourNewParameter, counter)

  • 使用shortinteger数据类型而不是Long

  • 您无需为xlWorksheet.Cells(1, counter)创建变量       缩短你的代码。

代码:

Private Sub AddHeaders(ByVal columnNumberToStart As Short)
    Dim counter As Short = columnNumberToStart
    For i = 0 To ComboBox1.Items.Count - 1
        xlWorksheet.Cells(1, counter) = ComboBox1.Items(i).ToString()
        counter += 1
    Next
End Sub

答案 3 :(得分:0)

这最终对我有用

Dim headers = ComboBox1.Items.Cast(Of Object).ToArray
        xlWorkSheet.Range(columnName & "1").Resize(1, headers.Length).Value2 = headers

答案 4 :(得分:0)

这也有效:

  For i = 0 To ComboBox1.Items.Count - 1
            Dim s As String
            myCol = xlWorkSheet.Range(columnName & 1).Column
            s = Convert.ToString(ComboBox1.Items(i))
            xlWorkSheet.Cells(1, myCol + i).Value = s
        Next i