循环遍历VB.net中的选定单元格

时间:2015-01-22 16:11:56

标签: vb.net excel vba

我刚开始学习Vb.net。在VBA中,我可以像这样循环选定的单元格并更改选择中所有单元格的大小写

Dim c As Range
For Each c In Selection
    If c.HasFormula = False Then
        c.Value = UCase(c.Value)
    End If
Next

我如何在VB.Net中实现这一点,记住我还不知道将选择哪个细胞范围

1 个答案:

答案 0 :(得分:0)

好的尝试一下。我正在使用DataGridView为用户提供一些要选择的单元格。当用户单击“显示所选”按钮时,For Each循环将遍历每个选定的单元格。

Public Class Form1
Dim gridSelection As New DataGridView
Dim lblSelection As New Label
Dim Selection As String

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'Setup DataGridView
    gridSelection.Columns.Add("columnA", "A")
    gridSelection.Columns.Add("columnB", "B")
    gridSelection.Columns.Add("columnC", "C")
    gridSelection.Columns.Add("columnD", "D")
    gridSelection.Rows.Add(6)
    gridSelection.Location = New Point(0, 0)
    gridSelection.AutoSize = True

    'Setup Button to show Selection
    Dim btnShow As New Button
    btnShow.Text = "Show Selected"
    btnShow.Location = New Point(0, 250)
    btnShow.AutoSize = True
    AddHandler btnShow.Click, AddressOf btnShow_Click

    'Setup label to display Selection
    lblSelection.Text = Nothing
    lblSelection.Location = New Point(0, 300)
    lblSelection.AutoSize = True

    'Add controls to form
    Me.Controls.AddRange({gridSelection, btnShow, lblSelection})
End Sub

Sub btnShow_Click()
    'Reset Selection list.
    Selection = Nothing

    'Loop through each selected cell.
    For Each cell As DataGridViewCell In gridSelection.SelectedCells
        Dim column As String = cell.OwningColumn.HeaderText
        Dim row As String = cell.RowIndex.ToString()

        'Add cell to Selection list.
        Selection = IIf(Selection = Nothing, Selection, Selection + ", ") + column + row
    Next

    'Show Selection list.
    lblSelection.Text = Selection
End Sub
End Class

希望这能为你画出更好的画面。