vb中的按钮单击事件

时间:2012-02-01 03:31:53

标签: vb6 excel-vba vba excel

我是VB的新手。我想在单击第一个按钮时将值存储在数组中,并在单击第二个按钮时显示结果。我成功地将值存储在数组中。但我无法在第二个按钮单击事件中访问相同的数组..

Dim i As Integer
Dim ag(0 To 7000) As String
Dim bg(0 To 7000) As String

Private CommandButton1_Click()
  i = 0

  Sheets("New").Select
  Range("B2").Select

  While Not IsEmpty(ActiveCell)
    ag(i) = ActiveCell.Value
    i = i + 1
    ActiveCell.Offset(1, 0).Select
  Wend

  i = 0

  Sheets("New").Select
  Range("D2").Select

  While Not IsEmpty(ActiveCell)
    bg(i) = ActiveCell.Value
    i = i + 1
    ActiveCell.Offset(1, 0).Select
  Wend
End Sub

Private CommandButton2_Click()
  UserForm1.Hide
End Sub

Private Sub Cell_Click()
End Sub

Private Sub CommandButton1_Click()
End Sub

Private Sub CommandButton2_Click()
End Sub

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:0)

Nimmy

我的帖子不是回答你的主要问题:)如果你看看Ken和Cody的评论那么你会自动意识到答案是什么;)

当我看到你的代码和声明你是新手时,我忍不住发表评论。我记得我学习编码的日子和像SO这样的论坛实际上帮助我提高了编码技巧。因此,您可以将此视为回报:-D

1)在您的情况下,您可以将 i调整为整数,但是当您处理更大的行(例如32768行)时会发生什么。在VBA Excel中工作时,将 i 调暗

是安全的。

2)。选择是在VBA中工作时出错的主要原因,更不用说它们会降低您的代码速度。相同的代码也可以写为下面给出的代码。我假设第1行和最后一行之间没有空白值。

Dim i As Long
Dim ag(0 To 7000) As String
Dim bg(0 To 7000) As String
Dim ws As Worksheet

Private CommandButton1_Click()
    Set ws = Sheets("New")

    With ws
        For i = 2 To .Range("B" & .Rows.Count).End(xlUp).Row
            ag(i) = .Range("B" & i).Value
        Next
        For i = 2 To .Range("D" & .Rows.Count).End(xlUp).Row
            bg(i) = .Range("D" & i).Value
        Next
    End With
End Sub

HTH,是的,快乐编码;)

西特