一次只读一个单元格Excel vba中的单元格值

时间:2014-04-20 15:22:46

标签: excel vba excel-vba

我在不同的excel单元格Value1,Value2,Value3中有值。在excel Vba中,我创建了一个按钮和一个Label。我想编写一个程序,当我每次单击按钮时,Label值应相应地改变Value1,Value2,Value3。 但是当我单击按钮1时使用此代码,我只看到值1,当我第二次点击时没有任何反应。我尝试使用Do循环,然后当我单击Button时它会自动转到最后一个单元格:

   Private Sub Button1_Click()
    Dim i As Integer
    i = 1
    Do
    Label1.Caption = Cells(i, 2)
    i = i + 1
    Loop Until i = 10
   End Sub

1 个答案:

答案 0 :(得分:0)

你需要一个指向最后一个单元格的指针,以及每次按下按钮时递增(和环绕)的方法。

如果在关闭工作簿后指针位置需要保持不变,则需要将指针存储在某个单元格中(我想如果不可能,可以使用注册表;但我宁愿在隐藏中使用单元格工作表)。

如果您只需要在工作簿打开时指针保持持久,并且每次重新打开工作簿时它都可以重置为第一个单元格,那么您可以将其存储在全局或静态变量中你的VBA模块。

以下是使用Static变量的示例。如果将变量存储在单元格中,则可以应用类似的过程。此例程假定您在与按钮相同的工作表上循环访问单元格B1:B10。

Option Explicit
  Private Sub CommandButton1_Click()
  Static NextCellRow As Long
NextCellRow = NextCellRow Mod 10 + 1
CommandButton1.Caption = Cells(NextCellRow, 2)
End Sub

另一个警告:如果您的例程中存在未处理的VBA错误,NextCellRow也会忘记它的值。