在Excel中选择多行并通过VBA读取

时间:2014-07-01 20:46:53

标签: excel vba excel-vba

我正在尝试在Excel VBA中实现以下Java程序。

enter image description here

Java程序有一个带复选框的数据列表。我可以通过选中复选框来选择任何行,然后单击“显示”按钮,然后程序将打开一个新窗口,显示所选玩家的详细统计信息。

这是我的Excel。我需要一些方法来选择行或玩家名称。我可以在按 Ctrl 键的同时选择,但它不如复选框方便,至少我的左手必须触摸键盘。

enter image description here

我可以为每一行添加复选框。由于数据有数百到数千行,因此vba运行速度非常慢。

您是否有任何想法如何创建一个允许用户方便地选择多行的界面?

1 个答案:

答案 0 :(得分:1)

这将如下工作。对于例如您需要在工作表上的 A1:A10 范围内切换True / False值。然后打开VBE窗口(Alt-F11)并转到工作表,右键单击,选择SelectionChange()的事件并编写以下代码。这是相当自我解释的:

Private Sub Worksheet_SelectionChange(ByVal Target as Range)
    Dim Intersection as Range
    Set Intersection = Application.Intersect(Target, Range("A1:A10")

    If Intersection Is Nothing Then
        ' Do nothing
    Else
        ActiveCell.Value = Not (ActiveCell.Value)
    End If
End Sub

通过这种方式,您只需单击一下,即可切换给定单元格的true-false值。然后其余的代码可以接管。可以使用

动态捕获Excel中表格的范围A1:A10
TestBoundsRange = ListObject.ListColumns("ColumnName").DataBodyRange

使用指向正确表的ListObject变量替换ListObject。